AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

在环境创建过程中设置配置选项

使用 AWS 管理控制台、EB CLI、AWS CLI、开发工具包或 Elastic Beanstalk API 创建 AWS Elastic Beanstalk 环境时,您可以为配置选项提供值以便自定义环境以及在其中启动的 AWS 资源。

对于一次性配置更改之外的任何更改,可以在本地、源包或 Amazon S3 中存储配置文件

本主题介绍用于在环境创建过程中设置配置选项的所有方法的过程。

在 AWS 管理控制台

在 AWS 管理控制台中创建 Elastic Beanstalk 环境时,可以使用配置文件、保存的配置以及创建新环境向导中的表单来提供配置选项。

使用配置文件 (.ebextensions)

.config 文件放在一个名为 .ebextensions 的文件夹内的应用程序源包中。

~/workspace/my-app-v1.zip |-- .ebextensions | |-- environmentvariables.config | `-- healthcheckurl.config |-- index.php `-- styles.css

通常在环境创建过程中将源包上传到 Elastic Beanstalk。

Elastic Beanstalk 控制台为某些配置选项应用建议值并为其他选项提供表单字段。通过 Elastic Beanstalk 控制台配置的选项会直接应用于环境,覆盖配置文件中的设置。

使用保存的配置

使用 Elastic Beanstalk 控制台创建新环境时,首先执行的步骤是选择配置。配置可以是预定义配置(通常是某个平台(如 PHPTomcat)的最新版本),也可以是保存的配置

在环境创建过程中应用保存的配置 (AWS 管理控制台)

  1. 打开 Elastic Beanstalk 控制台

  2. 选择应用程序。

  3. 选择保存的配置

  4. 选择已保存的配置,然后选择启动环境

  5. 继续执行向导以创建环境。

保存的配置将因应用程序而异。有关创建保存的配置的详细信息,请参阅保存的配置

使用新建环境向导

大多数标准配置选项都在创建新环境向导配置更多选项页面上。如果您创建 Amazon RDS 数据库或为环境配置 VPC,则会为这些资源提供其他配置选项。

在环境创建过程中设置配置选项 (AWS 管理控制台)

  1. 打开 Elastic Beanstalk 控制台

  2. 选择或创建应用程序。

  3. 操作下拉菜单中,选择创建环境

  4. 继续执行向导,然后选择配置更多选项

  5. 选择任何配置预置,然后选择一个或多个配置卡上的修改来更改一组相关配置选项。

  6. 在完成选项的选择后,选择创建环境

在新建环境向导中设置的任何选项都直接对环境进行设置,并将覆盖所应用的保存配置或配置文件 (.ebextensions) 中的任何选项设置。您可以在创建环境之后使用 EB CLIAWS CLI 删除设置,以允许保存的配置或配置文件中的设置发挥作用。

有关新建环境向导的详细信息,请参阅新建环境向导

使用 EB CLI

使用配置文件 (.ebextensions)

.config 文件放在项目文件夹的 .ebextensions 下,以便与应用程序代码一起部署它们。

~/workspace/my-app/ |-- .ebextensions | |-- environmentvariables.config | `-- healthcheckurl.config |-- .elasticbeanstalk | `-- config.yml |-- index.php `-- styles.css

使用 eb create 创建环境并将源代码部署到其中。

~/workspace/my-app$ eb create my-env

使用保存的配置

要在使用 eb create 创建环境时应用保存的配置,请使用 --cfg 选项。

~/workspace/my-app$ eb create --cfg savedconfig

可以将保存的配置存储在项目文件夹中或 Amazon S3 上的 Elastic Beanstalk 存储位置中。在以上示例中,EB CLI 首先在文件夹 savedconfig.cfg.yml 中查找名为 .elasticbeanstalk/saved_configs/ 的保存的配置文件。在使用 .cfg.yml 应用保存的配置时,不要包含文件扩展名 (--cfg)。

~/workspace/my-app/ |-- .ebextensions | `-- healthcheckurl.config |-- .elasticbeanstalk | |-- saved_configs | | `-- savedconfig.cfg.yml | `-- config.yml |-- index.php `-- styles.css

如果 EB CLI 未在本地找到配置,则它会在 Amazon S3 中的 Elastic Beanstalk 存储位置中进行查找。有关创建、编辑和上传保存的配置的详细信息,请参阅保存的配置

使用命令行选项

EB CLI eb create 命令具有几个选项,可以用于在环境创建过程中设置配置选项。可以使用这些选项来将 RDS 数据库添加到环境、配置 VPC 或覆盖建议值

例如,EB CLI 在默认情况下使用 t2.micro 实例类型。要选择不同的实例类型,请使用 --instance_type 选项。

$ eb create my-env --instance_type t2.medium

要创建 Amazon RDS 数据库实例并将其附加到环境,请使用 --database 选项。

$ eb create --database.engine postgres --database.username dbuser

如果您省略环境名称、数据库密码或创建环境所需的任何其他参数,则 EB CLI 会提示您输入它们。

有关可用选项的完整列表以及用法示例,请参阅 eb create

使用 AWS CLI

当您通过 AWS CLI 使用 create-environment 命令创建 Elastic Beanstalk 环境时,AWS CLI 不应用任何建议值。指定源包中的配置文件中定义了所有配置选项。

使用配置文件 (.ebextensions)

要使用 AWS CLI 将配置文件应用于您创建的环境,请在上传到 Amazon S3 的应用程序源包中包含它们。

~/workspace/my-app-v1.zip |-- .ebextensions | |-- environmentvariables.config | `-- healthcheckurl.config |-- index.php `-- styles.css

使用 AWS CLI 上传应用程序源包并创建环境

  1. 如果您在 Amazon S3 中还没有 Elastic Beanstalk 存储桶,请使用 create-storage-location 创建一个。

    $ aws elasticbeanstalk create-storage-location { "S3Bucket": "elasticbeanstalk-us-west-2-123456789012" }
  2. 将应用程序源包上传到 Amazon S3。

    $ aws s3 cp sourcebundle.zip s3://elasticbeanstalk-us-west-2-123456789012/my-app/sourcebundle.zip
  3. 创建应用程序版本。

    $ aws elasticbeanstalk create-application-version --application-name my-app --version-label v1 --description MyAppv1 --source-bundle S3Bucket="elasticbeanstalk-us-west-2-123456789012",S3Key="my-app/sourcebundle.zip" --auto-create-application
  4. 创建环境:

    $ aws elasticbeanstalk create-environment --application-name my-app --environment-name my-env --version-label v1 --solution-stack-name "64bit Amazon Linux 2015.03 v2.0.0 running Tomcat 8 Java 8"

使用保存的配置

要在创建过程中将保存的配置应用于环境,请使用 --template-name 参数。

$ aws elasticbeanstalk create-environment --application-name my-app --environment-name my-env --template-name savedconfig --version-label v1

指定保存的配置时,不要同时指定解决方案堆栈名称。保存的配置已指定了解决方案堆栈,如果您尝试同时使用两个选项,则 Elastic Beanstalk 会返回错误。

使用命令行选项

使用 --option-settings 参数可采用 JSON 格式指定配置选项。

$ aws elasticbeanstalk create-environment --application-name my-app --environment-name my-env --version-label v1 --template-name savedconfig --option-settings '[ { "Namespace": "aws:elasticbeanstalk:application", "OptionName": "Application Healthcheck URL", "Value": "/health" } ]

要从文件加载 JSON,请使用 file:// 前缀。

$ aws elasticbeanstalk create-environment --application-name my-app --environment-name my-env --version-label v1 --template-name savedconfig --option-settings file://healthcheckurl.json

Elastic Beanstalk 会将您使用 --option-settings 选项指定的选项设置直接应用于环境。如果在保存的配置或配置文件中指定了相同选项,则 --option-settings 会覆盖这些值。