我需要将 API key 和其他敏感信息作为环境变量存储在 app.yaml
中,以便在 GAE 上进行部署。这样做的问题是,如果我将 app.yaml
推送到 GitHub,此信息就会公开(不好)。我不想将信息存储在数据存储中,因为它不适合项目。相反,我想在每次部署应用时从 .gitignore
中列出的文件中换出值。
这是我的 app.yaml 文件:
application: myapp
version: 3
runtime: python27
api_version: 1
threadsafe: true
libraries:
- name: webapp2
version: latest
- name: jinja2
version: latest
handlers:
- url: /static
static_dir: static
- url: /.*
script: main.application
login: required
secure: always
# auth_fail_action: unauthorized
env_variables:
CLIENT_ID: ${CLIENT_ID}
CLIENT_SECRET: ${CLIENT_SECRET}
ORG: ${ORG}
ACCESS_TOKEN: ${ACCESS_TOKEN}
SESSION_SECRET: ${SESSION_SECRET}
有什么想法吗?
最佳答案
此解决方案很简单,但可能并不适合所有不同的团队。
首先,将环境变量放在env_variables.yaml中,例如,
env_variables:
SECRET: 'my_secret'
然后,在 app.yaml
env_variables.yaml
includes:
- env_variables.yaml
最后,将 env_variables.yaml
添加到 .gitignore
中,使存储库中不存在 secret 变量。
在这种情况下,env_variables.yaml
需要在部署管理器之间共享。
关于python - 使用 app.yaml 在 GAE 中安全地存储环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22669528/