首页 > 解决方案 > 在 Flask 中,如果您将生产和开发变量存储在 .gitignore 文件中,您应该如何部署到 Heroku?

问题描述

管理的最佳实践是什么:

  1. 我必须为 Heroku 使用 git,因此必须上传配置变量,例如数据库 URL
  2. 这些是私有的,我被告知永远不要将它们上传到 git

是不是很简单:确保 git 存储库是私有的并省略 .gitignore 文件?还是有另一种方法可以将文件保密?

标签: githerokuflaskgitignore

解决方案


管理凭据和敏感配置数据的最佳实践是从环境变量中获取它们

第一步:创建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 存储库中也是如此。


推荐阅读