git - 在 Flask 中,如果您将生产和开发变量存储在 .gitignore 文件中,您应该如何部署到 Heroku?
问题描述
管理的最佳实践是什么:
- 我必须为 Heroku 使用 git,因此必须上传配置变量,例如数据库 URL
- 这些是私有的,我被告知永远不要将它们上传到 git
是不是很简单:确保 git 存储库是私有的并省略 .gitignore 文件?还是有另一种方法可以将文件保密?
解决方案
管理凭据和敏感配置数据的最佳实践是从环境变量中获取它们
第一步:创建config.py
文件。
# inside the config.py
from os import environ
SOME_SECRET = environ.get("SOME_SECRET", "YOUR DEFAULT VALUE")
第二步:让烧瓶引用该文件以从中提取其配置。
# indide app.py
app.config.from_pyfile("config.py", silent=False)
第三步:在您的应用程序中使用这些值。
from flask import current_app
def do_something():
current_app.config.get('SOME_SECRET', None)
...
...
确保您在应用程序上下文中使用此代码
第四步:现在您必须在将运行您的代码的机器中添加这些环境变量,无论它是否在(Heroku、AWS EC2、k8s 节点、..etc)
通过这种方式,您可以确保不会将任何秘密凭证或配置暴露给任何可以访问您的代码库的人,即使它位于公共Github 存储库中也是如此。
推荐阅读
- amazon-web-services - 使用 terraform 在 ec2 实例中每小时配置一次 shell 脚本执行
- asp.net - 使用 Secret Manager 工具配置测试帐户以设置密码
- python - 使用 Python 从 ELF 中提取汇编代码
- excel - 数组元素移位
- javascript - 使用js将令牌值添加到html表单
- python - indexError out of range 时不应该有
- android - Android:避免儿童背景覆盖父母在xml中的背景
- postgresql - 创建函数时PostgreSQL INSERT INTO语法错误
- python - 无法在 Windows 上导入 Pync
- python - 如何在 Python 中获取外汇远期汇率而不是 BLPAPI 中的点