在环境创建期间设置配置选项 - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在环境创建期间设置配置选项

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

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

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

在 Elastic Beanstalk 控制台中

在 Elastic Beanstalk 控制台中创建 Elastic Beanstalk 环境时,您可以使用配置文件、保存的配置以及 Create New Environment(创建新环境)向导中的表单提供配置选项。

使用配置文件(.ebextensions

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

有关配置文件的详细信息,请参阅.Ebextensions

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

通常在创建环境期间将源包上传到 Elastic Beanstalk。

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

使用保存的配置

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

在创建环境期间应用保存的配置(Elastic Beanstalk 控制台)
  1. 打开 Elastic Beanstalk 控制台,然后在 Regions(区域)列表中选择您的 Amazon Web Services 区域。

  2. 在导航窗格中,选择 Applications(应用程序),然后从列表中选择应用程序的名称。

    注意

    如果您有多个应用程序,请使用搜索栏筛选应用程序列表。

  3. 在导航窗格中,找到应用程序的名称,然后选择 Saved configurations(已保存的配置)。

  4. 选择要应用的已保存的配置,然后选择 Launch environment(启动环境)。

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

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

使用新建环境向导

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

在创建环境期间设置配置选项(Elastic Beanstalk 控制台)
  1. 打开 Elastic Beanstalk 控制台,然后在 Regions(区域)列表中选择您的 Amazon Web Services 区域。

  2. 在导航窗格中,选择 Applications(应用程序)。

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

  4. 选择 Actions(操作),然后选择 Create environment(创建环境)。

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

  6. 选择任何 configuration presets(配置预设),然后在一个或多个配置类别中选择 Edit(编辑)以更改一组相关的配置选项。

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

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

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

使用 EB CLI

使用配置文件 (.ebextensions)

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

有关配置文件的详细信息,请参阅.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

使用 Amazon CLI

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

使用配置文件 (.ebextensions)

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

有关配置文件的详细信息,请参阅.Ebextensions

~/workspace/my-app-v1.zip |-- .ebextensions | |-- environmentvariables.config | `-- healthcheckurl.config |-- index.php `-- styles.css
使用 上传应用程序源包并创建环境Amazon 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 会覆盖这些值。