Я хочу настроить переменные среды (их не нужно шифровать) для Cloud Build.
env.sh
export GCP_PROJECT_ID=example
export GCP_KMS_KEYRING=example-secrets
export GCP_KMS_KEYNAME=example-identity
export GCP_KMS_ROLE=roles/cloudkms.cryptoKeyDecrypter
export GCP_KMS_KEY_ID=projects/$GCP_PROJECT_ID/locations/global/keyRings/$GCP_KMS_KEYRING/cryptoKeys/$GCP_KMS_KEYNAME
cloudbuild.yaml
steps:
# 1 Install Dependencies
- name: 'python'
id: Pip install
args: ['pip3', 'install', '-r', 'requirements.txt', '--user']
# 2 Set env variables for its execution
- name: 'ubuntu'
args: ['bash', 'scripts/env.sh']
# 3 Run Tests
- name: 'python'
args: ['python3', '-m', 'pytest', 'functions/test/']
Выполнение шага 2 не устанавливает их должным образом. Я не получаю ошибок при запуске скрипта, но позже в моих тестах, когда я пытаюсь получить GCP_KMS_KEY_ID
из os.env
, я получаю сообщение об ошибке. Я понимаю, что могу установить env:
на этапе выполнения тестов, но мой проект требует загрузки env из файла.
Как лучше всего настроить переменные среды?
bash
наsource
, как вsource ./scripts/env.sh
- person John Hanley   schedule 14.06.2019gcloud functions deploy
есть флаг--env-vars-file
, который принимает.yaml
файл. Вы знаете, есть ли аналог для pytest? - person user1222324562   schedule 14.06.2019