4

Google App Engine フレキシブルに複数の nodejs サービスをデプロイする方法を理解するのに苦労しています。

タスクを処理するために、firebase-queue で複数の nodejs クラスを使用しています。現在、package.json を使用してすべてを一度に開始しています。しかし、これが問題になってきました。他のすべてのスクリプトを停止することなく、1 つの特定のサービス/スクリプトに変更をプッシュできるようにしたいと考えています。

私のpackage.jsonは現在、次のようになっています。

"scripts": {
    "task1": "node ./src/task1.js",
    "task2": "node ./src/task2.js",
    "start": "npm-run-all -p task1 task2"
}

さまざまな .yaml ファイルを使用してプッシュするビルド バリアント (デバッグまたはリリース) を決定していますが、各タスクを個別にデプロイするのは難しいと感じています。Pythonでこれを行う方法に関するドキュメントを見つけましたが、nodejsには何もありません。誰か提案はありますか?

4

2 に答える 2

7

(私自身の質問に答えます。助けてくれたジャスティンに感謝します)

特に、スクリプトをpackage.jsonで開始するように動的に変更するという問題がありました。package.jsonが「 $」を使用して環境変数にアクセスできることがわかりました

パッケージ.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
于 2016-12-14T17:13:13.450 に答える
4

これがまさに App Engine サービスが存在する理由です :) デプロイするサービスごとに {serviceName}.yaml を作成できます。その後、それぞれを呼び出しますgcloud app deploy service.yaml。これにより、同じアプリ内に複数のサービスが作成されます。例については、次を参照してください。

https://github.com/JustinBeckwith/cloudcats

お役に立てれば!

于 2016-11-30T06:16:43.363 に答える