Что вызывает сообщение об ошибке Google gcloud «ОШИБКА: (gcloud) Неверный выбор: ‘gcloud'» и как это устранить?

#google-cloud-platform #yaml #gcloud #google-cloud-build

#google-облачная платформа #yaml #gcloud #google-cloud-build

Вопрос:

Я пытаюсь развернуть облачную функцию в GCP с помощью CI-CD процесса. Я написал файл yaml. Ниже приведен мой код: cloudbuild.yaml

 # Deploy Cloud Function
  - name: "gcr.io/cloud-builders/gcloud"
    id: deploy
    dir: "/workspace/API/audit_from_storage"
    args:
      [
        'gcloud', 'functions', 'deploy', 'audit_deployed',
        '--set-env-vars', 'BASEURL=${_CP_BASE_URL},BUCKETNAME=${_BUCKETNAME},FUNCTION=${_FUNCTION}',
        '--region=us-central1',
        '--source=.',
        '--trigger-resource=${_BUCKETNAME}',
        '--trigger-event=google.storage.object.finalize',
        '--runtime=nodejs10',
        '--entry-point=collectAudit',
        '--service-account=${_SERVICE_ACCOUNT}',
      ]
  

Ниже приведены журналы:

 Finished Step #0 - "installing_npm"
Starting Step #1 - "deploy"
Step #1 - "deploy": Already have image (with digest): gcr.io/cloud-builders/gcloud
Step #1 - "deploy": ERROR: (gcloud) Invalid choice: 'gcloud'.
Step #1 - "deploy": Maybe you meant:
Step #1 - "deploy":   gcloud functions deploy
Step #1 - "deploy":   gcloud run deploy
Step #1 - "deploy":   gcloud deployment-manager deployments cancel-preview
Step #1 - "deploy":   gcloud deployment-manager deployments create
Step #1 - "deploy":   gcloud deployment-manager deployments delete
Step #1 - "deploy":   gcloud deployment-manager deployments describe
Step #1 - "deploy":   gcloud deployment-manager deployments list
Step #1 - "deploy":   gcloud deployment-manager deployments stop
Step #1 - "deploy":   gcloud deployment-manager deployments update
Step #1 - "deploy": 
Step #1 - "deploy": To search the help text of gcloud commands, run:
Step #1 - "deploy":   gcloud help -- SEARCH_TERMS
Finished Step #1 - "deploy"
ERROR
ERROR: build step 1 "gcr.io/cloud-builders/gcloud" failed: step exited with non-zero status: 2
  

Пожалуйста, помогите мне решить это.
Ниже приведен сценарий после удаления gcloud аргумента из списка массивов:

Edit:

 # Deploy Cloud Function
- name: "gcr.io/cloud-builders/gcloud"
  id: deploy
  dir: "/workspace/API/audit_from_storage"
  args:
    [
      'functions', 'deploy', 'audit_from_storage',
      '--set-env-vars', 'BASEURL=${_CP_BASE_URL},BUCKETNAME=${_BUCKETNAME},FUNCTION=${_FUNCTION}',
      '--region=us-central1',
      '--source=.',
      '--trigger-resource=${_BUCKETNAME}',
      '--trigger-event=google.storage.object.archive',
      '--runtime=nodejs10',
      '--entry-point=collectAudit',
      '--service-account=${_SERVICE_ACCOUNT}',
    ]
  

Ниже приведены журналы:

 Starting Step #1 - "deploy"
Step #1 - "deploy": Already have image (with digest): gcr.io/cloud-builders/gcloud
Step #1 - "deploy": ERROR: (gcloud.functions.deploy) could not parse resource []
Finished Step #1 - "deploy"
ERROR
ERROR: build step 1 "gcr.io/cloud-builders/gcloud" failed: step exited with non-zero status: 1
  

введите описание изображения здесь

Спасибо
Притиш

Ответ №1:

Вам не нужен gcloud массив args; это точка входа для контейнера.

Итак, просто:

 args: ["functions","deploy",...]
  

Комментарии:

1. Привет, я попробовал ваше решение, но получаю эту ошибку: "deploy": ERROR: (gcloud.functions.deploy) could not parse resource []

2. Можете ли вы поделиться более подробным контекстом? Где вы запускаете эту команду? Где ваш код? Какова структура вашего проекта?

3. Не могли бы вы также опубликовать обновленный файл yaml, который вы пытаетесь развернуть, после изменения, предложенного DazWilkin?

4. Привет, посмотри мой раздел «Редактировать».

5. Я также добавил структуру своего проекта. Мой код находится в bitbucket репозитории. Я отразил этот репозиторий в своем google cloud source repository .