【问题标题】:Integrating PM2 on Google Cloud app engine在 Google Cloud 应用引擎上集成 PM2
【发布时间】:2020-08-15 08:58:37
【问题描述】:

我正在尝试将 PM2 集成到 Google Cloud App Engine,但无法解决。我正在使用 PM2 作为我网站的临时站点,我对它印象深刻。我使用 Digital Ocean droplet 进行分期。我意识到 Google Cloud App Engine 并没有那么灵活。

这是我的package.json

"main": "server.js",
"scripts": {
  "start": "NODE_ENV=production npm run server:prod",
  "server:prod": "node server.js",
  "server:stage": "NODE_ENV=stage pm2 start server.js --exp-backoff-restart-delay=100 -i max",
  "dev": "nodemon server.js",
  "gcp-deploy-stage": "gcloud app deploy app.backend.stage.yaml --project=xxxxx",
  "gcp-deploy-prod": "gcloud app deploy app.backend.prod.yaml --project=xxxx -v=alpha-16"
},

当我将生产脚本start 设置为这样的暂存时:

"server:prod":"pm2 start server.js --exp-backoff-restart-delay=100 -i max"

部署此 Google Cloud App Engine 通常会崩溃,因为没有通过 NPM 安装全局 PM2 来启动 PM2。

有没有人经历过这个并使它工作?或者任何可以引导我找到正确解决方案的代码或任何文档?

或者唯一的选择是将其迁移到 Google Cloud Compute Engine?

感谢您阅读本文和您的帮助。

【问题讨论】:

  • 嗨,你能显示完整的回溯吗?

标签: node.js google-app-engine pm2 app-engine-flexible


【解决方案1】:

如果您想使用任何模块,您必须将其包含在您的package.json 中。您是否尝试过运行npm install --save-dev pm2,然后重新部署您的站点?我的猜测是,这会让你到达你想去的地方。

除此之外 - 这可能不是一个好主意 :) pm2 在管理机器上的进程方面做了很多工作,特别是处理崩溃。 App Engine Flexible 在基础架构层做了很多工作,自动查看实例运行状况。它在后台使用 docker,它有自己的重启策略。然后最重要的是,如果 docker 重试策略不起作用,Google 负载均衡器会启动并为您启动一个新的计算实例。像这样进行进程级别监控和重新启动是完全有可能的,我只是想确保您了解幕后发生的所有其他事情。

好奇心害死猫 - 为什么您最终选择 App Engine Flexible 而不是 App Engine Standard?

【讨论】:

  • 您是否建议在云运行等解决方案中使用 pm2?还是不理会 express 服务器?
  • 我只是在想同样的事情......我相信它是不需要的。与贾斯汀所说的一致。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-26
  • 1970-01-01
  • 2018-11-25
  • 2017-10-23
  • 2021-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多