如何在登录到 Amazon Linux 的 Amazon EC2 实例时使环境属性显示在我的 Elastic Beanstalk 环境中?

上次更新时间:2020 年 9 月 24 日

我为我的 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 系统映像 (AMI)。

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) 服务器。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?