[英]Cloud Build env variables not passed to Django app on GAE
我有一個在 Google AppEngine 標准環境上運行的 Django 應用程序。 我已經從 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 的 Execution Details 選項卡下看到實際設置了變量。
問題是,我的 Django 應用程序無法訪問SHORT_SHA
和TAG_NAME
(按照https://cloud.google.com/cloud-build/docs/configuring-builds/substitute-variable-values#using_user-defined_substitution的說明進行操作)。 但是,如果我在 app.yaml 文件中使用env_variables
下的硬編碼值設置它們,那么我的 Django 應用程序可以訪問這些硬編碼值(並且在我的構建中設置的值不會覆蓋那些在 app.yaml 中硬編碼的值)。
為什么是這樣? 我是否訪問它們/設置不正確? 我應該以某種方式在 app.yaml 中設置它們嗎?
我什至在我的一個視圖中打印了整個os.environ
字典,以查看它們是否只是用不同的名稱或其他東西在那里,但它們不存在在那里。
不是最干凈的解決方案,但我使用這篇中等帖子作為我的解決方案的指導。 我假設runserver
命令沒有被傳遞那些 env 變量,並且這些變量僅用於app deploy
命令。
.env
文件中.env
文件中) - name: 'python:3.7'
entrypoint: python3
args: ['./create_env_file.py']
env:
- 'SHORT_SHA=$SHORT_SHA'
- 'TAG_NAME=$TAG_NAME'
app deploy
發生時,您的應用程序應該具有這些環境變量
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.