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