问题
We're deploying our software on behalf (OAuth2) of users on Google Cloud. We've managed to automate most of it, but there's one bit that's missing.
- Creating the project is done with https://godoc.org/google.golang.org/api/cloudresourcemanager/v1#ProjectsService.Create
- Enabling the required APIs (compute, storage, etc) is done with google.golang.org/api/servicemanagement/v1#ServicesService.Enable (can't post as full link thanks to the very bright SO limitations)
- Creating the instance is done with google.golang.org/api/compute/v1#InstancesService.Insert
The missing bit is between step 1 and step 2: in order to make use of the Service Management API to enable the needed APIs
, we need the Service Management API itself to be enabled on the project (how ironic). I'm hoping there must be a way to create a project with some APIs enabled from the start, maybe with cloudresourcemanager, or maybe with https://godoc.org/google.golang.org/api/deploymentmanager/v2, but I haven't found it so far.
So, to restate: does anyone know if it's possible (in Go) to create a Google Cloud project with some specific Google Cloud APIs enabled right on/after creation?
回答1:
Use the Service Usage API: https://cloud.google.com/service-usage/docs/reference/rest/
(updated)
回答2:
The Google Cloud Resource Manager API is very limited in what it will allow you to do.
while it does have a projects.update method it does not support enabling APIs. Your going to have to manually edit the project.
来源:https://stackoverflow.com/questions/43482969/how-to-create-a-google-cloud-project-with-service-management-api-enabled