У меня есть приложение Django, работающее в стандартной среде Google AppEngine. Я настроил триггер облачной сборки из моей главной ветки в Github, чтобы выполнить следующие шаги:
steps:
- name: 'python:3.7'
entrypoint: python3
args: ['-m', 'pip', 'install', '--target', '.', '--requirement', 'requirements.txt']
- name: 'python:3.7'
entrypoint: python3
args: ['./manage.py', 'collectstatic', '--noinput']
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app', 'deploy', 'app.yaml']
env:
- 'SHORT_SHA=$SHORT_SHA'
- 'TAG_NAME=$TAG_NAME'
На вкладке Сведения о выполнении в Cloud Build я вижу, что переменные были фактически установлены.
Проблема в том, что SHORT_SHA
и TAG_NAME
недоступны из моего приложения Django (следуя инструкциям в https://cloud.google.com/cloud-build/docs/configuring-builds/substitute-variable-values#using_user -defined_substitutions )! Но если я установлю их в своем файле app.yaml с жестко закодированными значениями в env_variables
, тогда мое приложение Django сможет получить доступ к этим жестко закодированным значениям (и значения, установленные в моей сборке, не перезаписывают те, которые жестко закодированы в app.yaml).
Почему это? Я к ним обращаюсь / неправильно их настраиваю? Должен ли я как-то устанавливать их в app.yaml?
Я даже напечатал весь словарь os.environ
в одном из моих представлений, чтобы посмотреть, были ли они там просто с другими именами или чем-то, но их нет там.