#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
.