我使用的是python google.cloud api
例如,使用指标模块
from google.cloud import monitoring
client = monitoring.Client()
client.query(my/gcp/metric, minutes=10)对于我的gcp im,使用一个对GOOGLE_APPLICATION_CREDENTIALS项目具有特定访问权限的服务帐户。
google.cloud是否有任何模块可以让我从服务帐户派生项目(比如获取服务帐户所在的项目)?
这会很方便,因为每个服务帐户只能访问单个项目,所以我可以设置我的服务帐户,并能够在代码中引用该项目。
发布于 2018-04-23 07:59:35
不确定这是否有效,您可能需要对其进行调整:
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
service = discovery.build('yourservicename', credentials=credentials)
request = service.projects().list()[0]发布于 2018-05-11 04:28:59
Google Cloud Identity and Access Management (IAM) API具有‘serviceAccounts.get’方法,该方法显示与服务帐户相关联的项目,如here所示。您需要对项目拥有适当的权限,API才能正常工作。
发布于 2019-06-04 08:55:45
如果该信息在环境中可用,则方法google.auth.default将返回一个元组(project_id, credentials)。
此外,客户端对象知道它链接到哪个项目(无论是client.project还是client.project_id,我不确定哪个项目用于Monitoring API)。
如果使用GOOGLE_APPLICATION_CREDENTIALS环境变量手动设置服务帐户,则可以打开文件并加载其json。服务帐户密钥文件中的一个参数是项目id。
https://stackoverflow.com/questions/49929617
复制相似问题