Modules API の使用

Modules API には、現在の動作環境に関する情報(モジュール、バージョン、インスタンス)を返す関数が用意されています。

Modules API には他にも、特定のモジュール、バージョン、インスタンスのアドレスを取得するための関数もあります。これをアプリケーションで利用すると、リクエストをインスタンス間で送信することができ、これは開発と本番のどちらの環境でも可能です。

次のコードサンプルでは、リクエストのモジュール名とインスタンス ID を取得する方法を示します。

import "google.golang.org/appengine"

func handler(w http.ResponseWriter, r *http.Request) {
	ctx := appengine.NewContext(r)
	module := appengine.ModuleName(ctx)
	instance := appengine.InstanceID()

	log.Infof(ctx, "Received on module %s; instance %s", module, instance)
}

自動スケーリングされるモジュールのインスタンス ID は、一意の base64 エンコード値として返されます(例: e4b565394caa)。

同じアプリ内のモジュール間で通信するには、相手のモジュールのホスト名を取得します。

hostname, err := appengine.ModuleHostname(ctx, "my-backend", "", "")
if err != nil {
	// ...
}
url := "http://" + hostname + "/"
// ...

URL 取得サービスを使用することもできます。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Go の App Engine スタンダード環境