如何从我的 Elastic Beanstalk 环境传递变量到 Linux 和 Windows 实例?

上次更新时间:2019 年 11 月 20 日

如何从我的 AWS Elastic Beanstalk 环境传递变量到 Linux 和 Windows Amazon Elastic Compute Cloud (Amazon EC2) 实例?

简短描述

您可以通过以下方法将环境变量传递到 Amazon EC2 实例:

解决方法

传递您的环境变量

选择以下一种方式传递您的环境变量。

使用 Elastic Beanstalk 控制台:

1.    打开 Elastic Beanstalk 控制台

2.    选择您的应用程序,然后从导航窗格选择配置

3.    针对软件类别,选择修改

4.    在环境属性部分,输入您想要传递至实例的环境属性的键值对。

5.    选择应用

重要提示:确保要考虑到环境属性限制

使用 EB CLI:

要在 EB CLI 中设置环境变量,运行以下命令:

eb setenv key=value

在以下示例中,将环境变量 ExampleVar 设置为:

$ eb setenv ExampleVar=ExampleValue
2018-07-11 21:05:25    INFO: Environment update is starting.
2018-07-11 21:05:29    INFO: Updating environment tmp-dev's configuration settings.
2018-07-11 21:06:50    INFO: Successfully deployed new configuration to environment.
2018-07-11 21:06:51    INFO: Environment update completed successfully.

要设置多个环境属性,使用以下命令:

$ eb setenv foo=bar JDBC_CONNECTION_STRING=hello PARAM4= PARAM5=

使用选项设置:

您可以使用 Elastic Beanstalk 配置文件,在您的源代码中设置环境属性和配置选项。

要定义环境属性,使用 aws: elasticbeanstalk: application: environment 命名空间。

见以下 .ebextensions/options.config 示例:

option_settings:
  aws:elasticbeanstalk:application:environment:
    API_ENDPOINT: www.example.com/api

使用 AWS CLI:

要在 AWS CLI 中设置环境属性,运行以下命令:

$ aws elasticbeanstalk update-environment --environment-name my-env --option-settings file://options.json

见以下示例:

[
  {
    "Namespace": "aws:elasticbeanstalk:application:environment",
    "OptionName": "API_ENDPOINT",
    "Value": "www.example.com/api"
  },
  {
    "Namespace": "aws:elasticbeanstalk:application:environment",
    "OptionName": "URL",
    "Value": "http://myurl.com"
  }
]

访问您的环境变量

注:即使实例中有环境属性,它们也不会被自动导出到 shell。相反,基于您使用的平台将环境属性通过其运行所在的堆栈提供给应用程序。

要访问您的环境变量,见访问环境属性

要访问您的应用程序代码以外的环境变量(例如,在部署过程中运行的脚本内),使用 get.config 平台脚本Fn:: GetOptionSetting

针对 Windows 实例,将环境属性从 C:\Program Files\Amazon\ElasticBeanstalk\config\containerconfiguration 传递到 Microsoft Internet Information Services (IIS) 服务器。

注:要传递机密信息(如数据库密码)到实例,按照在 Amazon S3 中安全存储私钥中的说明进行操作。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助吗?