Google App Engine 柔性环境上的多个 NodeJS Services/Modules
Multiple NodeJS Services/Modules on Google App Engine Flexible Environment
我正在努力弄清楚如何在 google 灵活的应用引擎上部署多个 nodejs 服务。
我正在使用多个 nodejs 类 和 firebase-queue 来处理我的任务。
现在,我正在使用我的 package.json 触发一次启动所有内容。
然而,这已经成为问题。我希望能够将更改推送到一个特定的 service/script 而不必停止所有其他脚本。
我的 package.json 目前看起来像这样:
"scripts": {
"task1": "node ./src/task1.js",
"task2": "node ./src/task2.js",
"start": "npm-run-all -p task1 task2"
}
我使用不同的 .yaml 文件来确定我想要推送哪个构建变体(调试或发布),但我发现很难单独部署每个任务。我在 python 中找到了有关如何执行此操作的文档,但在 nodejs 上没有任何内容。有人有什么建议吗?
这正是 App Engine 服务存在的原因 :) 您可以为每个要部署的服务创建一个 {serviceName}.yaml。然后,为每个调用 gcloud app deploy service.yaml
。这会在同一个应用程序中创建多个服务。有关示例,请参见:
https://github.com/JustinBeckwith/cloudcats
希望对您有所帮助!
(回答我自己的问题,非常感谢 Justin 的帮助)
我在动态更改脚本以在 package.json 中启动时特别遇到问题。
我发现 package.json 可以使用 '$'
访问环境变量
package.json:
"scripts": {
"start": "node $SCRIPT_TO_RUN"
}
myService.yaml
runtime: nodejs
vm: true
api_version: 1
instance_class: B4
manual_scaling:
instances: 1
service: cart-monitor-dev
env_variables:
SCRIPT_TO_RUN: './src/mytask.js'
然后部署使用:
gcloud app deploy myService.yaml
我正在努力弄清楚如何在 google 灵活的应用引擎上部署多个 nodejs 服务。
我正在使用多个 nodejs 类 和 firebase-queue 来处理我的任务。 现在,我正在使用我的 package.json 触发一次启动所有内容。 然而,这已经成为问题。我希望能够将更改推送到一个特定的 service/script 而不必停止所有其他脚本。
我的 package.json 目前看起来像这样:
"scripts": {
"task1": "node ./src/task1.js",
"task2": "node ./src/task2.js",
"start": "npm-run-all -p task1 task2"
}
我使用不同的 .yaml 文件来确定我想要推送哪个构建变体(调试或发布),但我发现很难单独部署每个任务。我在 python 中找到了有关如何执行此操作的文档,但在 nodejs 上没有任何内容。有人有什么建议吗?
这正是 App Engine 服务存在的原因 :) 您可以为每个要部署的服务创建一个 {serviceName}.yaml。然后,为每个调用 gcloud app deploy service.yaml
。这会在同一个应用程序中创建多个服务。有关示例,请参见:
https://github.com/JustinBeckwith/cloudcats
希望对您有所帮助!
(回答我自己的问题,非常感谢 Justin 的帮助)
我在动态更改脚本以在 package.json 中启动时特别遇到问题。 我发现 package.json 可以使用 '$'
访问环境变量package.json:
"scripts": {
"start": "node $SCRIPT_TO_RUN"
}
myService.yaml
runtime: nodejs
vm: true
api_version: 1
instance_class: B4
manual_scaling:
instances: 1
service: cart-monitor-dev
env_variables:
SCRIPT_TO_RUN: './src/mytask.js'
然后部署使用:
gcloud app deploy myService.yaml