Как можно использовать gcloud для включения API

Я не могу найти способ, чтобы использовать gcloud программа командной строки для изменения включенных API проекта. Моя догадка заключается в том, что это будет на биллинговой "арене", но я пытался найти это и мне очень повезло.

4 ответов


использовать

gcloud services enable <service name>

документация gcloud для этого

пример:

gcloud services enable containerregistry.googleapis.com

Проверьте service-management поверхность. См.gcloud help service-management для получения дополнительной помощи, а также gcloud help service-management enable для получения справки о включении новых услуг. Использовать gcloud service-management list список доступных служб, чтобы вы могли найти имя службы, которую хотите включить.


вопрос Для текущего проекта по умолчанию gcloud service-management list --enabled перечислить все доступные API включены.

$ gcloud service-management list --enabled
Listed 0 items.

если вы видите что-то вроде выше я.e 0 элементов, то вы, скорее всего, получите ошибку ниже для некоторых команд для проекта.

ERROR: (gcloud.compute.machine-types.list) Some requests did not succeed:
 - Project {PROJECT_ID} is not found and cannot be used for API calls

решение Что вам нужно сделать, это ниже

  1. перечислите API, доступные для проекта, который можно включить

выход довольно длинный, поэтому я предлагаю вам использовать глобальный размер страницы опции е.г

$ 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

...
  1. еще лучше проверить конкретные доступные API, которые вам нужны e.g чтобы проверить API Google Compute Engine, который я хочу включить

    $ gcloud service-management list --available --filter='NAME:compute*' NAME TITLE compute-component.googleapis.com Google Compute Engine API

  2. включить выставление счетов для проекта .

    $ 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 " }

  3. наконец, включите 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

`

  1. и для хорошей меры не помешает проверить

`

$ 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}

Что сработало для меня для включения API container engine -

включить службы gcloud containerregistry.googleapis.com