在 Node.JS 应用程序的应用程序配置中找不到 URLMap 条目

No URLMap entries found in application configuration for a Node.JS application

我正在尝试将 node.js 应用程序部署到 appEngine,但他似乎不喜欢我的 app.yaml。

D:\projects\Personal\Project>gcloud app deploy
ERROR: (gcloud.app.deploy) An error occurred while parsing file: [D:\projects\Personal\Project\app.yaml]
No URLMap entries found in application configuration
  in "D:\projects\Personal\Project\app.yaml", line 10, column 12

这是app.yaml:

runtime: nodejs
env: standard

skip_files:
 - ^node_modules$

env_variables:
  USER: 'dbUser'
  PASSWORD: 'DBPass'
  DB: 'URI to DB'

我是不是漏掉了什么? 难道是因为我的文件夹结构?

我有以下结构: - 客户 - 服务器 ---- server.js - app.yaml

所以 app.yaml 不在服务器文件夹中,否则它不包含客户端文件夹...

App Engine 中没有标准的 node js 环境。

您必须使用 env: flex

参见 this

现在标准环境支持nodejs8(此时仍处于测试阶段),您必须更新本地gcloud 环境才能部署。更新您的 gcloud 组件将使此警告消失。

运行

gcloud components update

更新您的 app.yaml 文件

有关所需的最基本示例,请参阅 Google 的 github:https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/master/appengine/building-an-app/build/app.yaml

更新您的 package.json

指定合适的兼容节点版本,例如:

  "engines": {
    "node": ">=8.0.0"
  },

完整教程 关于在 App Engine 标准环境中构建 nodejs8 应用程序:https://cloud.google.com/appengine/docs/standard/nodejs/building-app/

标准环境部署速度明显快于 flex 环境。