我为我的 AWS Elastic Beanstalk 环境设置环境属性。当我在 Elastic Beanstalk 环境中登录到 Amazon Elastic Compute Cloud (Amazon EC2) 实例,然后运行命令以在 shell 中列出环境变量时,我没有看到这些属性。
简短描述
环境属性不会自动导出到 shell 中(运行 PHP 的堆栈除外),尽管它们已经在实例中。相反,基于您使用的平台将环境属性通过其运行所在的堆栈提供给应用程序。要查看和设置环境属性,您可以使用 Elastic Beanstalk 控制台或 Elastic Beanstalk 命令行界面 (EB CLI) 中的 eb setenv。
该解决方法部分向您演示如何在多个平台中设置环境属性的源。有关其他平台特定选项的信息,请参阅环境属性和其他软件设置。有关如何访问代码之外的环境属性的信息,请参阅平台脚本工具。
解决方法
**重要提示:**以下解决方法仅适用于 Amazon Linux Amazon Machine Image (AMI)。对于 Amazon Linux 2 实例,请参阅如何使用 Elastic Beanstalk 实例 shell 中的环境变量?
Python
将环境属性写入到 /opt/python/current/env 文件中,它的来源是应用程序运行所在的 virtualenv 堆栈。有关更多信息,请参阅使用 Elastic Beanstalk Python 平台。
要设置源,请登录到实例,然后运行以下命令:
~$ source /opt/python/current/env
Ruby
首先将环境属性写入到包含所有堆栈配置信息的 JSON 文件 (/opt/elasticbeanstalk/deploy/configuration/containerconfiguration)。如果触发 /opt/elasticbeanstalk/hooks/configdeploy/pre/10_setup_envvars.sh 处的预部署挂钩,则所有的环境属性都将填写到 opt/elasticbeanstalk/support/envvars 文件中。然后,堆栈寻找 opt/elasticbeanstalk/support/envvars 文件的来源,以将环境变量提供给应用程序。有关更多信息,请参阅使用 Elastic Beanstalk Ruby 平台。
要设置源,请登录到实例,然后运行以下命令:
source /opt/elasticbeanstalk/support/envvars
Java
您在启动时设置的环境属性不会变成 shell 环境变量。有关更多信息,请参阅配置您的 Java SE 环境。
Windows
将环境属性从 C:\Program Files\Amazon\ElasticBeanstalk\config\containerconfiguration 传递到 Microsoft Internet Information Services (IIS) 服务器。