我因为一些大的软件包要求而使用自定义AMI进行Elastic Beanstalk。
当我通过SSH连接到EC2实例时,我的应用程序都无法使用我的环境变量(在Elastic Beanstalk Web控制台设置中指定)。
生产中的我的应用程序可以很好地访问变量,但我不能在控制台中这样做,这实际上使调试非常困难。
当我使用SSH控制台时,如何使所有环境变量可用?
答案 0 :(得分:11)
在仔细阅读Elastic Beanstalk支持论坛时,找到了一种加载所有环境变量的简便方法:
. /opt/python/current/env
要查看变量:echo ${VAR_NAME}
或printenv VAR_NAME
,在使用上述命令之前不起作用。 (UNIX, get environment variable)
<强>加成:强>
只需查看变量列表:printenv
将变量列为导出:cat /opt/python/current/env
将导出添加到配置文件的末尾:cat /opt/python/current/env >> /path/to/my/file
答案 1 :(得分:5)
Elastic Beanstalk使用的环境变量不是shell环境变量。它们在启动时传递到您的应用程序环境(使用不同语言的不同方法)。
E.g。
我过去通过在应用的管理端设置一个页面来解决这个问题,该页面只是为了调试目的而列出它们。
答案 2 :(得分:0)
export VARNAME="my value"
检查:
printenv VARNAME