google-cloud-platform - 如何通过 python 客户端库启用 GCP API?
问题描述
我正在尝试创建一个 python 函数,该函数将启用 GCP 项目所需的服务 API。我相信 API 调用会转到“serviceusage”API 并使用“services.enable”或“services.batchEnable”方法。我无法弄清楚如何正确构造查询。
https://cloud.google.com/service-usage/docs/reference/rest/v1/services/enable
我已经能够使用 GCP Python 客户端库来自动化大多数项目创建功能,但不是这个。我直接使用了 GCP 文档中的代码,但这种特殊方法的代码很少
from pprint import pprint
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
project = 'projects/964030760997' # TODO: Update placeholder value.
service = discovery.build('serviceusage', 'v1', credentials=credentials)
request = service.projects().services.list(project=project)
response = request.execute()
pprint(service)
这是我得到的回应:
Traceback (most recent call last):
File "enable_apis.py", line 29, in <module>
request = service.services().services.list(project=project)
AttributeError: 'Resource' object has no attribute 'services'
解决方案
您引用了错误的文档。这是服务使用 API 的链接:
这是我写的一个例子。笔记。此代码不处理,nextPageToken
因此它只打印前 50 个服务。将代码添加到循环中。
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
project = 'projects/myproject'
service = discovery.build('serviceusage', 'v1', credentials=credentials)
request = service.services().list(parent=project)
response = ''
try:
response = request.execute()
except Exception as e:
print(e)
exit(1)
# FIX - This code does not process the nextPageToken
# next = response.get('nextPageToken')
services = response.get('services')
for index in range(len(services)):
item = services[index]
name = item['config']['name']
state = item['state']
print("%-50s %s" % (name, state))
此代码的输出类似于:
abusiveexperiencereport.googleapis.com DISABLED
acceleratedmobilepageurl.googleapis.com DISABLED
accessapproval.googleapis.com DISABLED
accesscontextmanager.googleapis.com DISABLED
actions.googleapis.com DISABLED
adexchangebuyer-json.googleapis.com DISABLED
adexchangebuyer.googleapis.com DISABLED
adexchangeseller.googleapis.com DISABLED
adexperiencereport.googleapis.com DISABLED
admin.googleapis.com ENABLED
adsense.googleapis.com DISABLED
推荐阅读
- javascript - 无法在反应代码中从 javascript 设置 cookie
- java - android Studio中的按钮颜色没有改变
- c# - NullReferenceException 截图 ExtentReport C#
- python - 在 Scikit 中使用 Column Transformer 使用目标变量预处理训练和测试数据
- python - 如何从网站获取标题和链接?
- spring - 在 Thymeleaf 中的表中添加或删除行
- c# - 使用 AutoMapper 如何在映射之前验证源值?
- java - 有没有办法解决 beanName 中的占位符?
- flutter - 在 Flutter 应用程序中使用 StreamBuilder 更正 Null 安全问题
- reactjs - 使用 async await useEffect 和 Redux 处理错误