我很难理解Google关于其googleapiclient
模块认证的文档。在
基本上,我想用我的帐户而不是服务帐户连接到Google云平台(GCP)API。但似乎没有一个简单明了的文档。在
如果可能的话,有人能用Python代码的例子来指导我如何做到这一点吗?在
为了说明一下,这是我的代码片段:
gcp_credentials = service_account.ServiceAccountCredentials \
.from_json_keyfile_name('credentials/gce_token.json', scopes=[const.GCP_SCOPE])
gcp_http = gcp_credentials.authorize(http=build_http())
crm_service = discovery.build('cloudresourcemanager', 'v1', http=gcp_http)
crm_projects_api = crm_service.projects()
projects_list = crm_projects_api.list().execute()['projects']
project_id_list = [p['projectId'] for p in projects_list]
请随时提出澄清问题。在
当访问Google云平台API时,Google建议您设置一个API密钥,仅用于测试目的,并建议为生产使用设置一个服务帐户。使用服务帐户选项,可以为服务帐户生成一个密钥,允许使用该密钥的应用程序假定服务帐户的身份(因此它与相关的作用域/权限)一致。在
要创建API密钥(仅用于测试):
1)从Google API控制台获取OAuth 2.0客户端凭据。在
API&服务>凭据>API密钥
要创建服务帐户密钥(用于生产),请执行以下操作:
1)导航到“API&Services”>;“凭据”
2)单击“创建凭据”>;“服务帐户密钥”
3)您可以选择选择已存在的服务帐户,或创建新的服务帐户(在这些步骤中,我将选择“创建新服务帐户”)
4)选择允许访问所需存储的角色,例如允许对存储桶进行读写操作的“存储管理员”。在
5)选择JSON或P12(建议使用JSON),然后单击“创建”。服务帐户的密钥文件将下载到本地计算机。在
应用程序使用服务帐户密钥进行身份验证的最简单方法是使用
GOOGLE_APPLICATION_CREDENTIALS
环境变量。在您需要通过指向服务帐户密钥文件(创建服务帐户时下载的.json文件)来设置此环境变量。例如:
如果您不希望使用ADC(应用程序默认凭据)变量,而希望在Python代码中指向服务帐户文件,则可以使用如下内容,假设您希望使用存储API:
^{pr2}$相关问题 更多 >
编程相关推荐