Google Cloud App Engine 上的 Nodejs 应用程序未启动

use*_*694 3 google-app-engine node.js google-cloud-platform

再会,

我部署在 Google Cloud App Engine 实例上的非常基本的 Nodejs 应用程序未启动。该应用程序在本地app deploy运行,部署运行时没有错误 - 在应用程序实例上,当通​​过 Cloud shell(使用>npm start)手动启动时,应用程序成功运行。但是,一旦 Cloud Shell 关闭,我的应用程序就死了。我错过了什么?如何启动应用程序以永久运行?

该应用程序包括

  • bot4.js 文件,
  • npm 依赖项
  • 应用程序.yaml
  • 包.json

应用程序.yaml:

runtime: nodejs8
handlers:
- url: /
  script: auto
Run Code Online (Sandbox Code Playgroud)

包.json:

{
  "name": "blexplorer",
  "version": "1.0.0",
  "description": "",
  "main": "bot4.js",
  "scripts": {
    "start": "node bot4.js"
  },
  "author": "oystersauce",
  "license": "ISC",
  "dependencies": {
    "discord.js": "^11.4.2",
    "request": "^2.88.0"
  }
}
Run Code Online (Sandbox Code Playgroud)

同样,应用程序在通过 Cloud Shell 启动时运行良好,但在 Cloud Shell 关闭后就不再运行了。此外,它是一个超级简单的不和谐机器人 - 因此没有任何前端。

编辑:这就是我认为我手动启动应用程序的方式 - 但我在这里所做的是在云外壳内而不是在应用程序实例上启动应用程序: 在此处输入图片说明

这是我部署应用程序的方式: 在此处输入图片说明

Dan*_*scu 5

从 GAE 的角度来看,云外壳只是恰好托管在云中的“本地”开发机器上的外壳。运行云外壳的实例与 GAE 没有任何特殊关系。

您在运行时所做的npm start实际上并不是启动 GAE 实例,您只是启动服务的“本地”执行,就像在本地机器上执行相同操作一样。

通过您的配置,GAE 应该会在收到请求后立即自动启动您的应用程序。在带有前端的应用程序上,只需单击您在快照中圈出的链接即可进入。由于您的没有前端,它可能刚刚启动,但您必须依靠仪表板信息和/或您的应用程序日志来确认它正在运行。