3

私は、複数のnodejsサービスをGoogleアプリケーションエンジンに柔軟にデプロイする方法を理解するのに苦労しています。Google App Engine上の複数のNodeJSサービス/モジュールフレキシブル環境

firebase-queueで複数のnodejsクラスを使用してタスクを処理しています。 今、私はpackage.jsonを使ってすべてを一気に起動させています。しかしながら、これは問題となっている。他のすべてのスクリプトを停止することなく、特定のサービス/スクリプトに変更を加えることができるようにしたいと考えています。

マイpackage.jsonは現在、このようなもののようになります。私は(デバッグまたはリリース)をプッシュするバリアントを構築するかを決定するために、異なる.yamlファイルを使用していますが、それはハードに見つけています

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

各タスクを個別に展開します。私はpythonでこれを行う方法についてのドキュメントを見つけましたが、nodejsでは何も見つかりませんでした。誰にも何か提案はありますか?

+1

私はこの話題で、しばらくの間、デバイスからデバイスへの通知を送信する方法を見つけようとしています。新しいメッセージが到着したときなど。 Firebaseのキューをアプリケーションエンジンにデプロイして動作させる方法を理解しようとしているので、私はあなたに何か助けてくれません。私がそれに使用できるヒントやチュートリアルがあれば、私はそれを感謝します。もう一度お手伝いしないと申し訳ありません。 – TheeBen

+0

@TheeBenキュータスクの種類ごとにmy-queue-processer.jsを作成し、firebase-queueガイドに従って設定し、私の下の答えを使用して個々のサービスに分割し、 –

+0

ありがとう、私はfirebaseのキューをセットアップしました。ちょうどそれらの複数を持っていることについて疑問に思って、私はそれらを組み合わせる方法があるべきであると確信していました。私は最適化された方法をGoogleのアプリケーションエンジン – TheeBen

答えて

4

(、助けるためにジャスティンに大きな感謝を自分の質問に答える)

私は、特に動的に私の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 
+0

これはまさに私が探していたものです!このドキュメントでは、マイクロサービスアーキテクチャの優れた点について説明していますが、同じプロジェクトでさまざまなサービスをどのように実行するかを実際には説明していません。 – Aron

+0

それは動作しません.. –

4

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

https://github.com/JustinBeckwith/cloudcats

・ホープ、このことができます!

+0

ありがとうございましたジャスティン、ありがとうございました。私がプロダクションビルドまたは開発ビルドを導入しているかどうかを判断するために行っています。私が動的に定義する必要があるのは、package.jsonのデフォルトの "scripts":{"start": "scripts to run ..."}です。私はyamlを使ってそうする方法を理解できません。任意のヒント?私はあなたのレポを見ましたが、それはまた、単一のサービスを実行しているようです?ヘルプをよろしくお願いします。 –

関連する問題