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

上次更新日期:2020 年 10 月 8 日

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

简短描述

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

注意:如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI

解决方法

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

传递您的环境变量

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

使用 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:\ProgramFiles\Amazon\ElasticBeanstalk\config\containerconfiguration 传递到 Microsoft Internet Information Services (IIS) 服务器。</p


这篇文章对您有帮助吗?


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