Google App Engine Node.js 应用程序 - “解析 app.yaml 时出错:未知 url 处理程序类型”

Posted

技术标签:

【中文标题】Google App Engine Node.js 应用程序 - “解析 app.yaml 时出错:未知 url 处理程序类型”【英文标题】:Google App Engine Node.js App - “Error parsing app.yaml: Unknown url handler type” 【发布时间】:2016-04-04 13:50:48 【问题描述】:

我最近在 Google App Engine 中设置了一个 Node.js 应用程序,它运行良好。我尝试添加处理程序,以便所有对网站的请求都可以重定向到 https URL。以下是我的app.yaml 文件

# [START runtime]
runtime: nodejs
vm: true
# [END runtime]

# Temporary setting to keep gcloud from uploading node_modules
skip_files:
- ^node_modules$

# [START handlers]
handlers:
- url: /.*
  secure: always
# [END handlers]

当我尝试运行上传脚本 gcloud preview app deploy app.yaml 时,它会抛出以下异常:

ERROR: (gcloud.preview.app.deploy) An error occurred while parsing file: [/Users/rakesharidasan/BackwaterBreaks-UI-Release/app.yaml]
Unknown url handler type in  line 14, column 17 (end of # [END handlers]).

我可以在 *** 中看到类似的问题,但其中许多都与缩进或空白问题有关。我相信我的 app.yaml 有正确的缩进,我通过一些在线解析器检查了它,例如 - http://codebeautify.org/yaml-validator

如果我从 yaml 中删除处理程序部分,上传脚本仍将运行。

你知道这里出了什么问题吗?

【问题讨论】:

【参考方案1】:

处理程序部分还必须指定处理程序类型,在这种情况下是脚本或应用程序的主入口点

例子:

- url: /.*
  script: app.js
  secure: always

【讨论】:

完美!!!这解决了这个问题。如果应用引擎上传脚本能提供更好的错误信息,那应该会很好。非常感谢您的帮助@jeffrey-godwyll Node 10 的注意事项(现在是默认设置):您说“自动”,而不是提供 JS 源代码。否则 gcloud 会说:“INVALID_ARGUMENT:处理程序 '/.*' 的脚本字段必须为运行时 nodejs10 设置为 'auto'。”

以上是关于Google App Engine Node.js 应用程序 - “解析 app.yaml 时出错:未知 url 处理程序类型”的主要内容,如果未能解决你的问题,请参考以下文章

Google App Engine Node.js 本地开发服务器是不是支持 SSL?

是否可以使用 Node.js 或其他一些服务器端 JavaScript 方法开发 Google App Engine 网络应用程序?

Meteor JS 框架是不是与 Google App Engine 兼容?

是否有可能使用Google App Engine托管多个应用程序?

如何将 socket.io 部署到 Google App Engine?

在 Google Compute Engine 上使用 gcloud 安装 node.js