modules.get_current_instance_id()
numaralı telefonu arayarak çalışan bir işlem için kısa bir tamsayı instance_id alabilirsiniz, ancak bu, uygulamanın geçerli sürümüne ait örneklerin listesine bir tamsayı dizini döndürür. Bu bana başka şeylerin yanı sıra, içeren bir dicti verirApp Engine örneğinde uzun biçimli instance_id dosyasını nasıl alabilirim (Python'da)?
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())]
, değer şuna benzer bir 'id'
anahtar-değer çifti: 00c61b117cb3c50973d6a73225b3d807eb8e873e96abc59c46ebba168897b8dbd9a443af962df5
İhtiyacım olan bu.
Bu yöntemin iki belirgin dezavantajı vardır. Birincisi, bir yerde yerel olarak bulunması gereken bir şey elde etmek için bir RPC yapıyorum. İkincisi, bir yarış durumu olduğu gerçeğidir. modules.get_current_instance_id()
döndürürse, 3, ancak örnek # 2, bu işlemin bu dizinin atama arasında kapanır ve rpc yanıtı aldığımda, rpc_result
dizinleme içinde bir tarafından kapalı olacağım.
Uygulama motorunda bu kimliğe nasıl ulaşırım?