【问题标题】:Heroku accessing environmental variable issuesHeroku 访问环境变量问题
【发布时间】:2021-05-19 23:03:47
【问题描述】:

我正在尝试将一个 plotly dash 应用程序部署到 Heroku,但我有需要隐藏的 API 密钥。我似乎无法部署它。当我使用下面的子进程库来创建提取环境变量的方法时,它可以在本地工作。但是,当我尝试在线访问该应用程序时,日志会为我从中提取的 API 提供未经授权的 401 错误。

from subprocess import run, PIPE

def out(command):
    result = run(command, stdout=PIPE, stderr=PIPE, shell=True)
    return result.stdout


key = out('heroku config:get key')

有没有更好的方法来做到这一点?谢谢!

【问题讨论】:

    标签: python heroku environment-variables


    【解决方案1】:

    只需在顶部导入os 并使用os.environ["key"] 获取API 密钥(将key 替换为您调用的环境变量)。

    【讨论】:

    • 当我尝试这样做时,我得到 KeyError 'key' 因为它们不在 .env 文件中,而是在 Heroku 的配置变量中。
    • Heroku 的配置变量在 Heroku 应用程序中被设置为环境变量。你确定配置变量被命名为“key”吗?
    • 是的,但我是通过 Heroku 中的设置完成的,这是问题所在吗?还是我需要在变量名周围加上引号?
    • 无论配置变量在哪里定义,它都应该可以正常工作...
    • 我不知道然后它会因为某种原因不起作用。
    【解决方案2】:

    要添加到赛斯的答案,我的 settings.py 顶部如下所示:

    import environ
    import os
    
    env = environ.Env(
        DEBUG=(bool, False)
    )
    
    READ_DOT_ENV_FILE = env.bool('READ_DOT_ENV_FILE', default=False)
    if READ_DOT_ENV_FILE:
        environ.Env.read_env()
    
    DEBUG = env('DEBUG')
    SECRET_KEY = env('SECRET_KEY')
    

    Heroku->settings->config vars 中看起来像 this

    【讨论】:

      猜你喜欢
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 2019-04-07
      • 2022-01-04
      • 2020-11-12
      • 2021-11-01
      相关资源
      最近更新 更多