

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

# 在环境创建期间设置配置选项
<a name="environment-configuration-methods-during"></a>

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

对于一次性配置更改之外的任何更改，可以在本地、源包或 Amazon S3 中[存储配置文件](environment-configuration-methods-before.md)。

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

**Topics**
+ [在 Elastic Beanstalk 控制台中](#configuration-options-during-console)
+ [使用 EB CLI](#configuration-options-during-ebcli)
+ [使用 AWS CLI](#configuration-options-during-awscli)

## 在 Elastic Beanstalk 控制台中
<a name="configuration-options-during-console"></a>

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

**Topics**
+ [使用配置文件（`.ebextensions`）](#configuration-options-during-console-ebextensions)
+ [使用保存的配置](#configuration-options-during-console-savedconfig)
+ [使用新建环境向导](#configuration-options-during-console-wizard)

### 使用配置文件（`.ebextensions`）
<a name="configuration-options-during-console-ebextensions"></a>

将 `.config` 文件放在一个名为 `.ebextensions` 的文件夹内的[应用程序源包](applications-sourcebundle.md)中。

有关配置文件的详细信息，请参阅[.Ebextensions](ebextensions.md)。

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

通常在[创建环境](using-features.environments.md)期间将源包上传到 Elastic Beanstalk。

Elastic Beanstalk 控制台为某些配置选项应用[建议值](command-options.md#configuration-options-recommendedvalues)，并为其他选项提供表单字段。通过 Elastic Beanstalk 控制台配置的选项会直接应用于环境，覆盖配置文件中的设置。

### 使用保存的配置
<a name="configuration-options-during-console-savedconfig"></a>

使用 Elastic Beanstalk 控制台创建新环境时，首先执行的步骤是选择配置。配置可以是[**预定义配置**](concepts.platforms.md)（通常是某个平台（如 **PHP** 或 **Tomcat**）的最新版本），也可以是**保存的配置**。

**在创建环境期间应用保存的配置（Elastic Beanstalk 控制台）**

1. 打开 [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 AWS 区域

1. 在导航窗格中，选择 **Applications**（应用程序），然后从列表中选择应用程序的名称。

1. 在导航窗格中，找到应用程序的名称，然后选择 **Saved configurations**（已保存的配置）。

1. 选择要应用的已保存的配置，然后选择 **Launch environment**（启动环境）。

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

保存的配置将因应用程序而异。有关创建保存的配置的详细信息，请参阅[保存的配置](environment-configuration-methods-before.md#configuration-options-before-savedconfig)。

### 使用新建环境向导
<a name="configuration-options-during-console-wizard"></a>

大多数标准配置选项都在[创建新环境向导](environments-create-wizard.md)的**配置更多选项**页面上。如果您创建 Amazon RDS 数据库或为环境配置 VPC，则会为这些资源提供其他配置选项。

**在创建环境期间设置配置选项（Elastic Beanstalk 控制台）**

1. 打开 [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 AWS 区域

1. 在导航窗格中，选择 **Applications**（应用程序）。

1. 选择或[创建](applications.md)应用程序。

1. 选择 **Actions**（操作），然后选择 **Create environment**（创建环境）。

1. 继续执行向导，然后选择**配置更多选项**。

1. 选择任何 **configuration presets**（配置预设），然后在一个或多个配置类别中选择 **Edit**（编辑）以更改一组相关的配置选项。

1. 在完成选项的选择后，选择**创建环境**。

在新建环境向导中设置的任何选项都直接对环境进行设置，并将覆盖所应用的保存配置或配置文件（`.ebextensions`）中的任何选项设置。可以在创建环境之后使用 [EB CLI](environment-configuration-methods-after.md#configuration-options-after-ebcli) 或 [AWS CLI](environment-configuration-methods-after.md#configuration-options-after-awscli) 删除设置，以允许保存的配置或配置文件中的设置发挥作用。

有关新建环境向导的详细信息，请参阅[创建新环境向导](environments-create-wizard.md)。

## 使用 EB CLI
<a name="configuration-options-during-ebcli"></a>

**Topics**
+ [使用配置文件 (`.ebextensions`)](#configuration-options-during-ebcli-ebextensions)
+ [使用保存的配置](#configuration-options-during-ebcli-savedconfig)
+ [使用命令行选项](#configuration-options-during-ebcli-params)

### 使用配置文件 (`.ebextensions`)
<a name="configuration-options-during-ebcli-ebextensions"></a>

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

有关配置文件的详细信息，请参阅[.Ebextensions](ebextensions.md)。

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

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

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

### 使用保存的配置
<a name="configuration-options-during-ebcli-savedconfig"></a>

要在使用 [**eb create**](eb3-create.md) 创建环境时应用保存的配置，请使用 `--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 存储位置中进行查找。有关创建、编辑和上传保存的配置的详细信息，请参阅[保存的配置](environment-configuration-methods-before.md#configuration-options-before-savedconfig)。

### 使用命令行选项
<a name="configuration-options-during-ebcli-params"></a>

EB CLI **eb create** 命令具有几个[选项](eb3-create.md#eb3-createoptions)，可以用于在创建环境期间设置配置选项。可以使用这些选项来将 RDS 数据库添加到环境、配置 VPC 或覆盖[建议值](command-options.md#configuration-options-recommendedvalues)。

例如，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](eb3-create.md)。

## 使用 AWS CLI
<a name="configuration-options-during-awscli"></a>

[当您使用`create-environment`命令创建 Elastic Beanstalk 环境 AWS CLI时 AWS CLI ，不会应用任何建议值。](command-options.md#configuration-options-recommendedvalues)指定源包中的配置文件中定义了所有配置选项。

**Topics**
+ [使用配置文件（`.ebextensions`）](#configuration-options-during-awscli-ebextensions)
+ [使用保存的配置](#configuration-options-during-awscli-savedconfig)
+ [使用命令行选项](#configuration-options-during-awscli-params)

### 使用配置文件（`.ebextensions`）
<a name="configuration-options-during-awscli-ebextensions"></a>

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

有关配置文件的详细信息，请参阅[.Ebextensions](ebextensions.md)。

```
~/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"
   }
   ```

1. 将应用程序源包上传到 Amazon S3。

   ```
   $ aws s3 cp sourcebundle.zip s3://elasticbeanstalk-us-west-2-123456789012/my-app/sourcebundle.zip
   ```

1. 创建应用程序版本。

   ```
   $ 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
   ```

1. 创建环境。

   ```
   $ 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"
   ```

### 使用保存的配置
<a name="configuration-options-during-awscli-savedconfig"></a>

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

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

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

### 使用命令行选项
<a name="configuration-options-during-awscli-params"></a>

使用 `--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` 会覆盖这些值。