我正在开发一个自动执行 Google Cloud 设置的项目,有什么方法可以使用适用于 Python 的 Google-Api-Client 创建 Google Cloud 项目?
这是我尝试过的:
来自 views.py
from google.cloud import resource_manager
...
client = resource_manager.Client()
# List down all gcp projects
for project in client.list_projects():
print(project)
new_project = client.new_project('project11-372', name='My new project')
new_project.create()
它列出了我所有的 gcp 项目,但不创建新项目。
这是我收到的错误:
文件“/Users/abdul/Documents/IGui/rest/views.py”,第 60 行,在帖子中 new_project.create() 文件“/Users/abdul/IstioVirEnv/lib/python3.6/site-packages/google/cloud/resource_manager/project.py”,第 138 行,创建 数据=数据) 文件“/Users/abdul/IstioVirEnv/lib/python3.6/site-packages/google/cloud/_http.py”,第 293 行,api_request 引发异常。from_http_response(response) google.cloud.exceptions.Forbidden: 403 POST https://cloudresourcemanager.googleapis.com/v1beta1/projects: 调用者没有权限。
[20/8/2017 05:55:02]“POST /user/deployment/create/new HTTP/1.1”500 14960
我已使用 Google Cloud API Python 客户端成功创建了 Google Cloud 项目。
步骤
gcloud beta auth application-default login
命令通过登录浏览器获取应用程序默认凭据这是有效的 Python 代码:
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
...
credentials = GoogleCredentials.get_application_default()
service = discovery.build('cloudresourcemanager', 'v1', credentials=credentials)
project_body = {
'name': 'Api Project',
'projectId': 'api-9837'
}
request = service.projects().create(body=project_body)
request.execute()
pprint(request)