gpt4 book ai didi

python - 如何获取 App Engine 实例的长格式 instance_id?

转载 作者:太空狗 更新时间:2023-10-30 00:18:59 34 4
gpt4 key购买 nike

我可以通过调用 modules.get_current_instance_id() 为正在运行的进程获取一个短整数 instance_id,但这会返回应用程序当前版本的实例列表中的整数索引。我可以像这样创建一个 rpc 来获取完整的十六进制 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

这就是我需要的。

这种方法有两个明显的缺点。首先是我正在执行 RPC 以获得必须在本地可用的东西 - 某处。第二个是存在竞争条件的事实。如果 modules.get_current_instance_id() 返回一个 3,但是实例 #2 在将该索引分配给该进程和我收到 rpc 响应之间关闭,我将关闭通过我对 rpc_result 的索引中的一个。

如何在 App Engine 中获取此 ID?

最佳答案

您应该能够从 INSTANCE_ID 环境变量中获取它。

您可以通过以下方式获取它:

os.eniron["INSTANCE_ID"]

关于python - 如何获取 App Engine 实例的长格式 instance_id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42310152/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com