【发布时间】:2017-08-23 09:41:48
【问题描述】:
我无法找到一种方法来使用gcloud 命令行程序来更改项目的已启用 API。我的预感是它会出现在计费“竞技场”中,但我一直在努力找到它,并且很幸运。
【问题讨论】:
标签: google-cloud-platform gcloud
我无法找到一种方法来使用gcloud 命令行程序来更改项目的已启用 API。我的预感是它会出现在计费“竞技场”中,但我一直在努力找到它,并且很幸运。
【问题讨论】:
标签: google-cloud-platform gcloud
选择您的应用程序将被注册的项目(请参阅有关 gcloud config set 的文档)
gcloud config set project myProject
要查看项目的可用服务列表,请运行:
gcloud services list --available
在当前项目中启用服务(参见有关gcloud services enable的文档)
gcloud services enable my-consumed-service
【讨论】:
【讨论】:
编辑:这已被弃用。见gcloud services答案。
查看service-management 表面。请参阅gcloud help service-management 获取更多帮助,以及gcloud help service-management enable 获取有关启用新服务的帮助。使用gcloud service-management list 列出可用服务,以便您找到要启用的服务的名称。
【讨论】:
gcloud service-management list --available。
gcloud service-management 已被弃用,现在分成两个单独的命令 - gcloud endpoints 和 gcloud services。后者 (gcloud services) 用于为项目启用/禁用 Google Cloud API。
使用
gcloud services enable <service name>
例子:
gcloud services enable containerregistry.googleapis.com
【讨论】:
启用容器引擎 API 对我有用 -
gcloud 服务启用 containerregistry.googleapis.com
【讨论】:
问题 对于您当前的默认项目,请执行 gcloud service-management list --enabled 列出所有启用的可用 API。
$ gcloud service-management list --enabled
Listed 0 items.
如果您看到类似上面的内容,即 0 items ,那么您很可能会在项目的某些命令中收到以下错误。
ERROR: (gcloud.compute.machine-types.list) Some requests did not succeed:
- Project {PROJECT_ID} is not found and cannot be used for API calls
解决方案 你需要做的是下面的
输出很长,所以我建议你使用全局选项 page-size 例如
$ gcloud service-management list --available --page-size=10 --sort-by="NAME"
NAME TITLE
picker.googleapis.com Google Picker API
bigquery-json.googleapis.com BigQuery API
chromewebstore.googleapis.com Chrome Web Store API
tracing.googleapis.com Google Tracing API
youtube.googleapis.com YouTube Data API v3
actions.googleapis.com Google Actions API
dataflow.googleapis.com Google Dataflow API
serviceuser.googleapis.com Google Service User API
fusiontables.googleapis.com Fusion Tables API
surveys.googleapis.com Surveys API
NAME TITLE
reseller.googleapis.com Google Apps Reseller API
speech.googleapis.com Google Cloud Speech API
appsmarket-component.googleapis.com Google Apps Marketplace SDK
bigtabletableadmin.googleapis.com Google Cloud Bigtable Table Admin API
container.googleapis.com Google Container Engine API
vision.googleapis.com Google Cloud Vision API
storage-api.googleapis.com Google Cloud Storage JSON API
weavecompanion.googleapis.com Weave Companion API
ml.googleapis.com Google Cloud Machine Learning Engine
firebaserules.googleapis.com Firebase Rules API
...
最好还是检查您需要的特定可用 API 例如,检查我想要启用的 Google Compute Engine API
$ gcloud service-management list --available --filter='NAME:compute*'
NAME TITLE
compute-component.googleapis.com Google Compute Engine API
为项目启用计费。
$ gcloud alpha billing accounts projects link amghouse-some-project-1 --account-id=XXFFXX-B9XX37-2D5DX --format=json
{
"billingAccountName": "billingAccounts/XXFFXX-B9XX37-2D5DX",
"billingEnabled": true,
"name": "projects/amghouse-some-project-1 /billingInfo",
"projectId": "amghouse-some-project-1 "
}
最终为您的项目启用 api
`
$gcloud service-management enable compute-component.googleapis.com
Waiting for async operation operations/projectSettings.c6d11ddc-915f-4d66-9b98-237e473e7682 to complete...
Operation finished successfully. The following command can describe the Operation details:
gcloud service-management operations describe operations/projectSettings.c6d11ddc-915f-4d66-9b98-237e473e7682
`
`
$ gcloud service-management operations describe operations/projectSettings.c6d11ddc-915f-4d66-9b98-237e473e7682 --format=json
{
"done": true,
"metadata": {
"@type": "type.googleapis.com/google.api.servicemanagement.v1.OperationMetadata",
"persisted": true,
"resourceNames": [
"services/compute-component.googleapis.com/projectSettings/"
],
"startTime": "2017-04-08 23:30:22 WAT"
},
"name": "operations/projectSettings.c6d11ddc-915f-4d66-9b98-237e473e7682",
"response": {
"@type": "type.googleapis.com/google.api.servicemanagement.v1.EnableServiceResponse"
}
}
`
注意 请注意,如果项目未链接到帐单信息,尝试启用 api 将失败并出现类似于
的错误$ gcloud service-management enable compute-component.googleapis.com
ERROR: (gcloud.service-management.enable) FAILED_PRECONDITION: Operation does not satisfy the following requirements: billing-enabled {Billing must be enabled for activation of service '' in project 'amghouse-bct-sms-1' to proceed., https://console.developers.google.com/project/amghouse-bct-sms-1/settings}
【讨论】:
service-management list 命令已替换为 endpoints services list 和 services list。
gcloud service-management operations describe 也已被弃用。 gcloud services operations describe operations/acf.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 有效但不输出 JSON,而是得到了 Operation "operations/acf.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" finished successfully.