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

2 分钟阅读
0

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

简短描述

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

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

解决方法

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

传递您的环境变量

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

使用 Elastic Beanstalk 控制台

要使用控制台传递您的环境变量,请按照配置环境属性中的说明进行操作。

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

使用 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 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) 服务器。警告:此文件位置受 Elastic Beanstalk 框架的约束,可以在没有警告的情况下进行更改。


AWS 官方
AWS 官方已更新 2 年前