私はmodules.get_current_instance_id()
を呼び出すことにより、実行中のプロセスのための短い整数のinstance_idを得ることができますが、これはアプリケーションの現行バージョンのインスタンスのリストに整数のインデックスを返します。これは私に他のものの間で、含まれている辞書を与える(Pythonで)どのようにApp Engineインスタンスのlong-form instance_idを取得できますか?
from google.appengine.api.app_identity import app_identity
from googleapiclient.discovery import build
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
service = build('appengine', 'v1', credentials=credentials)
appsId = app_identity.get_application_id()
rpc_result = service.apps().services().versions().instances().list(versionsId='23', servicesId='default', appsId=appsId).execute()
print rpc_result['instances'][int(modules.get_current_instance_id())]
、値は次のようなものになります'id'
キーと値のペア:00c61b117cb3c50973d6a73225b3d807eb8e873e96abc59c46ebba168897b8dbd9a443af962df5
これは私が必要なものです。
この方法には2つの明らかな欠点があります。最初は、どこかでローカルで利用可能なものを得るためにRPCをやっているということです。 2つ目は、競合状態が存在するということです。 modules.get_current_instance_id()
戻った場合は、たとえば、3が、インスタンス#2は、このプロセスには、そのインデックスの割り当ての間シャットダウンし、私は、RPCの応答を得るとき、私はrpc_result
の私のインデックスに1でオフにするつもりです。
アプリエンジンでこのIDを取得するにはどうすればよいですか?