【发布时间】:2014-05-05 08:36:41
【问题描述】:
我需要将 API 密钥和其他敏感信息作为环境变量存储在 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}
有什么想法吗?
【问题讨论】:
-
我希望 GAE 能够添加通过开发者控制台设置实例环境变量的选项(就像我熟悉的所有其他 PaaS 一样)。
-
您可以使用数据存储。请参考这个答案:stackoverflow.com/a/35254560/1027846
-
扩展了以上mustilica关于使用数据存储的评论。请参阅下面的答案,了解我在项目中使用的代码:stackoverflow.com/a/35261091#35261091。实际上,它允许您从开发者控制台编辑环境变量,并自动创建占位符值。
-
感谢mustilica 和Martin。实际上,我们一直在使用数据存储方法,我同意这是解决此问题的最佳方法。与 json 文件方法 IMO 相比,使用 CI/CD 设置更容易。
-
2019 和 GAE still 还没有解决这个问题:/
标签: python google-app-engine python-2.7 environment-variables