尝试在 google cloud shell 中列出项目并出现错误

Posted

技术标签:

【中文标题】尝试在 google cloud shell 中列出项目并出现错误【英文标题】:trying to list projects in google cloud shell and getting error 【发布时间】:2020-07-07 07:55:41 【问题描述】:

我正在尝试通过 cloudshell 终端的以下 python 代码列出我的帐户可用的项目

from googleapiclient import discovery
from oauth2client.client import OAuth2Credentials as creds
crm = discovery.build(
    'cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))

filter = "name:project a"
projects = crm.projects().list(filter=filter).execute()

但在执行以下行后,我收到此错误:

crm = discovery.build('cloudresourcemanager', 'v1', http=creds.authorize(httplib2.Http()))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unbound method authorize() must be called with OAuth2Credentials instance as first argument (got Http instance instead)

我是谷歌云和python的新手,请帮助谢谢

【问题讨论】:

您需要先使用服务帐号或OAuth2Credentials授权 【参考方案1】:
from google.cloud import resource_manager
   
client = resource_manager.Client()
for project in client.list_projects():
    print(project)

这应该给环境变量GOOGLE_APPLICATION_CREDENTIALS设置的当前上下文中的所有项目

【讨论】:

以上是关于尝试在 google cloud shell 中列出项目并出现错误的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Dataproc 删除 BigQuery 表不起作用

Google Cloud Shell - 无法打开shell

Google Cloud Bigtable HBase shell 连接挂起

如何在Google BigQuery Composer和Cloud Shell中提交多个查询

Kickstart Terraform on GCP with Google Cloud Shell

在 BigQuery Cloud Shell 中从 Google 表格创建外部表格时,如何选择默认表格(第一张表格)以外的表格?