更新环境变量

时间:2020-02-21 02:56:21

标签: python django linux heroku

我正在将我的本地django应用程序移植到heroku,并且遇到了麻烦。主要与我的环境变量有关。我不能很好地在Web服务器上创建.env文件,当我再次从github推送时,它将被覆盖。因此,我已经使用heroku config:set VAR='' --app <app>设置了环境变量。这些似乎可行,但是,我使用的API需要每60分钟刷新一次令牌。在本地,我开发了一种方法,每次执行刷新此令牌的任务时都更新我的.env,但是此解决方案显然不足以支持我的Web服务器...我试图更新服务器级变量在Python中,但我认为这是不可能的。有谁必须处理这样的问题?我要错了吗?

对我而言,更新Web服务器上的环境变量(即heroku config:set VAR='' --app <app>但在我的python代码中)的最佳方法是什么?我需要此变量每60分钟更新一次(我已经为此建立了celery任务代码)。我是否应该修改任务以将其简单地写入文本文件,然后将该文本文件用作“ Web服务器.env文件”?我在这里真的迷路了,因此我们将不胜感激。谢谢!

编辑:

根据要求,这里提供了更多信息:

我正在为两个系统构建一些中间件。第一个系统将记录发布到我的Django API。此事件启动了一项任务,该任务随后更新了单独的财务系统。这个独立的金融系统的API需要两件事,一个auth_code和一个access_token。必须每60分钟更新一次access_token。

我有一个refresh_token,用于获取新的access_token。此refresh_token每365天失效一次。结果,每次请求新的access_token时,我都可以简单地重用此refresh_token。

我的应用程序还处于初期阶段,除了第一个系统上的简单api帖子外,不需要任何其他内容即可启动此过程。最终将构建该目录,以要求我拥有自己的auth_token才能访问我的django api。

first system --> Django App --> Finance System

https://developer.blackbaud.com/skyapi/docs/authorization/auth-code-flow/tutorial

过程:

我目前有一个芹菜任务,每55分钟在后台运行一次。该任务将收集新的access_token并使用新的access_token重新创建我的.env文件。

我有一个单独的celery任务,该任务运行ETL管道,并要求access_token发布到金融系统api。

0 个答案:

没有答案