3

私は1つの大きなモノリスアプリケーションを持っており、今では一部のモジュールをマイクロサービスに分割する時間があります。 は、私はGoogleドキュメントでのパブリッシュ/サブスクライブとmicroservicesについて多くを読んで、私の質問の答えを見つけることができません。マイクロサービスを使用してGoogle App Engineアプリケーションを実行する

  1. app.yamlをファイルには、私のモジュール(microservice)のためにどのように見えますか?
  2. 私のアプリケーションのapp.yamlの外観はどうですか?(つまり、マイクロサービスの場合)
  3. このモジュールを宣言する必要があります - アプリケーションapp.yamlまたは両方のapp.yamlで宣言する必要がありますか?
  4. 私のアプリケーションとモジュールで単一のデータストアを使用するにはどうすればよいですか?いくつかの資格情報とのlibsと

    application: my-application 
    version: 1 
    runtime: python27 
    api_version: 1 
    threadsafe: true 
    

私のapp.yamlは今のように見えます。

回答を待っています!

+1

あなたが尋ねていることはわかりません。App Engine *モジュール*(現在は*サービス*と呼ばれています)には、「app.yaml」ファイルがあります。あなたの*プロジェクト*には、それぞれが独自の 'app.yaml'を持つ多くの*サービス*を持つことができます。ルーティングは 'dispatch.yaml'で行われ、* project *内のすべての* services *は同じDatastoreを共有します。現在のアプリケーションはどのようにモノリシックですか? – tx802

+0

例:私は自分のアプリの中にAPNSサービスを持っており、私はそれをマイクロサービスとして移動する必要があります。これは次のようにする:イベントの発生 - >イベントの作成 - >トピック(pub/sub)へのメッセージの送信 - > APNSマイクロサービスの聴取トピック - > APNSのプッシュ通知の送信 –

答えて

2

モノリシックアプリは、実際には単一のモジュール/サービス(デフォルトのもの)を持つアプリです。そのようなアプリのための設定(実際にはあなたが示したもの)は、デフォルトのモジュールの設定ファイルです。このような設定はありません。モジュールは、それぞれの<module>.yamlにこのラインである特定のアプリに一緒に「結ばれる」:各モジュールは、独自の<module>.yaml設定ファイルを持っているマルチモジュールのアプリで

application: <app_identifier> 

(名前はapp.yamlをする必要はありません。モジュールコードが同じdirを共有するならば、実際には異なっている必要がありますが、私は推奨されるディレクトリ構造に固執します - アプリケーションサブディレクトリごとに1つのモジュール)。

& A(もいくつかの例が含まれています)このQを参照してください:Can a default service/module in a Google App Engine app be a sibling of a non-default one in terms of folder structure?

デフォルトのモジュール名は、/設定すべきではないことができます。

module: <module_name> 

同じアプリを共有内のすべてのモジュールと同じデータストア(したがって同じindex.htmlファイル):他のすべてのモジュール名は、このように、それぞれの<module>.yamlファイルで設定されています。

他の設定ファイルもアプリケーションレベルの設定であり、実際にはすべてのモジュール(またはデフォルトモジュール(cronサービスを実行するモジュール))で共有されていることに注意してください。アプリの最上位ディレクトリ:cron.yamldispatch.yamlqueue.yaml

関連する問題