Добавить переменную среды в файл app.yaml во время сборки Google

Я использую Google Cloud Build с cloudbuild.yaml чтобы скачать app.yaml файл, который включает переменные среды для моего Python на основе приложения. app.yaml Версия, используемая для первоначального развертывания, не содержит переменных среды для защиты безопасности.

Тем не менее, кажется, что это не работает, и переменные среды не обнаруживаются - как app.yaml не кажется перезаписанным.

Следующее мое cloudbuild.yaml конфигурация:

steps:
 - name: gcr.io/cloud-builders/gsutil
args:
  [
    "cp",
    "gs://<path to bucket>/app.yaml",
    "app.yaml",
  ]

Я понимаю точку входа для приложения на App Engine через app.yaml но я думал, что если cloudBuild.yaml включен, это будет называться сначала, а затем app.yaml,

Если это не правильно, как еще я могу добавить переменные окружения в мой файл app.yaml?

Спасибо!

1 ответ

Решение

Когда ты бежишь gcloud app deploy процесс развертывания не займет cloudbuild.yaml файл в учетную запись и будет развертывать ваше приложение вместе с вашим населением app.yaml файл.

Чтобы выполнить пользовательский шаг сборки, вам нужно создать файл cloudbuild.yaml, как вы это сделали, определить свой пользовательский шаг сборки, а затем добавить шаг сборки для запуска команды deploy. Это было бы что-то вроде этого:

steps:
 - name: gcr.io/cloud-builders/gsutil
   args:
   [
    "cp",
    "gs://<path to bucket>/app.yaml",
    "app.yaml",
   ]
 - name: 'gcr.io/cloud-builders/gcloud'
   args: ['app', 'deploy']

Затем вы запустите сборку, выполнив следующую команду (в том же каталоге, где вы бы запустили gcloud app deploy один):

gcloud builds submit --config cloudbuild.yaml .

Это будет:

  • Загрузить текущий каталог в экземпляр Cloud Build
  • выполните команду gsutil из этого каталога на экземпляре CB, чтобы получить app.yaml файл, заполненный переменными среды
  • разверните свой код в App Engine из экземпляра Cloud Build
Другие вопросы по тегам