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

时间:2018-11-26 10:39:27

标签: node.js google-app-engine google-cloud-platform

美好的一天,

我在Google Cloud App Engine上部署的非常基本的Node.js应用无法启动。该应用程序在本地运行,使用app deploy进行的部署运行无错误-在该应用程序实例上,通过Cloud Shell(带有>npm start手动启动时,该应用程序成功运行。 但是,一旦Cloud Shell关闭,我的应用程序就会死机。我想念什么?如何启动该应用以使其永久运行?

该应用包含

  • bot4.js文件
  • npm依赖项
  • app.yaml
  • package.json

app.yaml:

runtime: nodejs8
handlers:
- url: /
  script: auto

package.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"
  }
}

同样,通过Cloud Shell启动该应用程序后运行正常,但一旦关闭Cloud Shell,该应用程序就不再运行。此外,它是一个超级简单的discord机器人-因此根本没有前端。

编辑: 这就是我以为我手动启动了应用程序的方式-但是我在这里所做的是在云外壳中而不是在应用程序实例上启动应用程序: enter image description here

这是我部署应用程序的方式: enter image description here

1 个答案:

答案 0 :(得分:2)

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

您在运行npm start时实际上没有启动GAE实例,而只是在开始“本地”执行服务,就像在本地执行一样机器。

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