cor*_*nus 6 python django amazon-web-services django-rest-framework amazon-elastic-beanstalk
我正在尝试在Elastic Beanstalk上设置Django / DRF应用程序,由于任何原因,Django都无法看到所需的环境变量。登录时,通过使用可以看到它们很好
$ eb ssh
$ cat /opt/python/current/env
Run Code Online (Sandbox Code Playgroud)
除了使用RDS的相对敏感的代码外,我还可以看到它们,只需使用即可$eb printenv。
所有这些似乎已设置并正常工作。但是,Django喜欢在启动时立即读取环境,并且似乎尚未设置环境变量。我已经尝试过简单地插入print(os.environ)in settings.py,当我这样做时,我发现了一大堆不需要的环境变量,也没有'SUPERVISOR_GROUP_NAME': 'httpd'我自己设置的变量DJ_SECRET_KEY。
此后,我更改了代码以报告加载设置时不存在特定环境变量的情况,并从最近一次运行中生成了以下代码:
[Wed Nov 23 15:56:38.164153 2016] [:error] [pid 15708] DJ_SECRET_KEY not in environment; falling back to hardcoded value.
[Wed Nov 23 15:56:38.189717 2016] [:error] [pid 15708] RDS_DB_NAME not in environment; falling back to sqlite
[Wed Nov 23 15:56:38.189751 2016] [:error] [pid 15708] AWS_STORAGE_BUCKET_NAME not in environment; falling back to local static storage.
Run Code Online (Sandbox Code Playgroud)
同样,这些变量是在设置中设置的,它们与EB给我的任何其他报告工具一起显示。它们只是没有设置时间,以便Django在启动和读取时读取它们settings.py。
这看起来很接近这个问题,但实际上并不相同:我知道在ssh-ing到eb实例时如何查看/将环境变量加载到shell中。当我需要它们进行实际项目时,它们只是没有出现。
这几乎完全是我遇到的问题,但是正确的可接受答案对我来说毫无意义,并且投票最高的答案并不适用。这些文件已经在git中。
我应该如何配置东西以便Django可以看到环境变量?
鉴于 EB 将所有这些环境变量存储在规范位置作为 bash 脚本,我最终只是让 bash 执行该脚本,并根据解析的结果更新环境。
我get_eb_env.py与我的settings.py. 其主要内容:
import os
import subprocess
ENV_PATH = '/opt/python/current/env'
def patch_environment(path=ENV_PATH):
"Patch the current environment, os.environ, with the contents of the specified environment file."
# mostly pulled from a very useful snippet: http://stackoverflow.com/a/3505826/504550
command = ['bash', '-c', 'source {path} && env'.format(path=path)]
proc = subprocess.Popen(command, stdout=subprocess.PIPE, universal_newlines=True)
proc_stdout, _ = proc.communicate(timeout=5)
# proc_stdout is just a big string, not a file-like object
# we can't iterate directly over its lines.
for line in proc_stdout.splitlines():
(key, _, value) = line.partition("=")
os.environ[key] = value
Run Code Online (Sandbox Code Playgroud)
然后,我只需导入并patch_environment()调用我的settings.py.
| 归档时间: |
|
| 查看次数: |
1420 次 |
| 最近记录: |