繁体   English   中英

获取服务版本的建议方法是什么

[英]What is suggested method to get service versions

在 flex env 中获取谷歌应用引擎中服务版本列表的最佳方法是什么? (来自 Python 3 中的服务实例)。 我想使用服务帐户 json 密钥文件进行身份验证。 我需要找到当前的默认版本(流量最多)。

有没有我可以使用的库,比如googleapiclient.discoverygoogle.appengine.api.modules 或者我应该从头开始构建它并使用 oauth 在apps.services.versions.list上请求 REST api? 我在谷歌文档中找不到任何信息.. https://cloud.google.com/appengine/docs/standard/python3/python-differences#cloud_client_libraries

您可以使用 Google 的Python 客户端库与 Google App Engine管理员 API进行交互,以获取 GAE 服务版本列表。

安装google-api-python-client后,您可能希望使用list方法列出应用程序中的所有服务:

列表(appsId,pageSize=None,pageToken=None,x__xgafv=None)

该方法的arguments应包括以下内容:

  • appsId : string ,“name”的一部分。 请求的资源的名称。 示例:应用程序/myapp。 (必需的)
  • pageSize : integer ,每页返回的最大结果。
  • pageToken : string ,用于获取下一页结果的继续令牌。
  • x__xgafv : string ,V1 错误格式。 允许v1 错误格式v2 错误格式

您可以在上述链接中找到有关此方法的更多信息。

最后我能够解决它。 GAE 上的简单事情变成了大问题..

解决方案:我在GOOGLE_APPLICATION_CREDENTIALS环境变量中设置了 service_account.json 的路径。 然后你可以使用google.auth.default

from googleapiclient.discovery import build
import google.auth

creds, project = google.auth.default(scopes=['https://www.googleapis.com/auth/cloud-platform.read-only'])
service = build('appengine', 'v1', credentials=creds, cache_discovery=False)
data = service.apps().services().get(appsId=APPLICATION_ID, servicesId=SERVICE_ID).execute()
print data['split']['allocations']

返回值是分配字典,其中版本为键,流量百分比为值。 一切顺利!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM