gpt4 book ai didi

heroku - flask / unicorn : setting environment variable from environment variable

转载 作者:行者123 更新时间:2023-12-03 16:18:51 25 4
gpt4 key购买 nike

python/flask/gunicorn/heroku 堆栈上,我需要根据另一个 env 变量的内容设置一个环境变量。

作为背景,我在 heroku 上运行了一个 python/Flask 应用程序。我通过包含凭据和 url 的环境变量与插件通信。我用来与插件通信的库需要这些数据,但需要以不同的格式。此外,它需要它作为环境变量。

到目前为止,我已经手动克隆并重新格式化了环境变量,但这只会带来灾难,因为插件提供商正在更改密码。

好的,所以我需要在库开始查找它之前自动读取一个环境变量并设置另一个环境变量。

我尝试过的天真的方法是(文件 app.py):

app = Flask(__name__, ...)
env_in = os.environ['ADDON_ENV_VAR']
os.environ['LIB_ENV_VAR'] = some_processing(env_in)
...
if __name__ == '__main__':
app.run(host='0.0.0.0', port='5000')

在执行 python app.py 进行调试时效果很好,但在通过 gunicorn app:app -b '0.0.0.0:5000' 运行时会失败(如Procfilefor foreman) 用于部署真正的网络服务器。在第二种情况下,env var 似乎没有进入操作系统级别。我不确定 wsgi 是如何工作的,但是一旦 gunicorn 开始运行应用程序,环境可能会发生变化。

如何在需要的地方设置环境变量?

最佳答案

你也可以在运行时设置环境变量

gunicorn -b 0.0.0.0:5000 -e env_var1=enviroment1 -e env_var2=environment2

关于heroku - flask / unicorn : setting environment variable from environment variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26504852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com