

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

# 使用 Elastic Beanstalk 保存的配置
<a name="environment-configuration-savedconfig"></a>

您可将环境的配置作为对象保存在 Amazon Simple Storage Service (Amazon S3) 中，以便在创建环境时应用于其他环境，或应用于正在运行的环境。*保存的配置* 是 YAML 格式的模板，用于定义环境的[平台版本](concepts.platforms.md)、[层](concepts.md#concepts-tier)、[配置选项](command-options.md)设置和标记。

您可以在创建保存的配置和编辑现有保存的配置的标签时向其应用标签。应用到保存的配置的标签与使用 `Tags:` 键在保存的配置中指定的标签无关。当您将保存的配置应用到环境时，后者将应用到环境。有关更多信息，请参阅 [标记保存的配置](environment-configuration-savedconfig-tagging.md)。

**注意**  
您可以使用多种方法创建保存的配置并将其应用于您的 Elastic Beanstalk 环境。其中包括 Elastic Beanstalk 控制台、EB CLI 和 AWS CLI。  
有关创建和应用保存的配置的替代方法示例，请参阅下列主题：  
[在创建环境之前设置配置选项](environment-configuration-methods-before.md)
[在环境创建期间设置配置选项](environment-configuration-methods-during.md)
[在环境创建后设置配置选项](environment-configuration-methods-after.md)

在 Elastic Beanstalk 管理控制台中，从环境的当前状态创建保存的配置。

**保存环境的配置**

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

1. 在导航窗格中，选择 **Environments**（环境），然后从列表中选择环境的名称。

1. 选择 **Actions**（操作），然后选择 **Save configuration**（保存配置）。

1. 使用屏幕上的表单命名已保存的配置。（可选）提供简要说明，并添加标签键和值。

1. 选择**保存**。  
![\[Elastic Beanstalk 控制台上的“Save Configuration (保存配置)”页面\]](http://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/images/environment-cfg-saveconfiguration-dialog.png)

保存的配置包括已应用于具有控制台的环境或任何其他使用 Elastic Beanstalk API 的客户端的任何设置。您可以稍后将保存的配置应用于您的环境以将它还原为上一个状态，也可以在[创建环境](environments-create-wizard.md)期间将保存的配置应用于新环境。

您可以使用 EB CLI [**eb config**](eb3-config.md) 命令下载配置，如以下示例所示。 *NAME*是您保存的配置的名称。

```
eb config get NAME
```

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

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

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

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

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

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

保存的配置不包括已与应用程序源代码中的[配置文件](ebextensions.md)一起应用的设置。如果在配置文件和保存的配置中应用相同的设置，则保存的配置中的设置优先。同样，Elastic Beanstalk 控制台中指定的选项将覆盖保存的配置中的选项。有关更多信息，请参阅 [优先级](command-options.md#configuration-options-precedence)。

保存的配置存储在 Elastic Beanstalk S3 存储桶中按照应用程序命名的文件夹中。例如，对于账号 123456789012，us-west-2 区域中名为 `my-app` 的应用程序的配置位于 `s3://elasticbeanstalk-us-west-2-123456789012/resources/templates/my-app/`。

通过在文本编辑器中打开保存的配置，可以查看其内容。以下示例配置显示使用 Elastic Beanstalk 管理控制台启动的 Web 服务器环境的配置。

```
EnvironmentConfigurationMetadata:
  Description: Saved configuration from a multicontainer Docker environment created with the Elastic Beanstalk Management Console
  DateCreated: '1520633151000'
  DateModified: '1520633151000'
Platform:
  PlatformArn: arn:aws:elasticbeanstalk:us-east-2::platform/Java 8 running on 64bit Amazon Linux/2.5.0
OptionSettings:
  aws:elasticbeanstalk:command:
    BatchSize: '30'
    BatchSizeType: Percentage
  aws:elasticbeanstalk:sns:topics:
    Notification Endpoint: me@example.com
  aws:elb:policies:
    ConnectionDrainingEnabled: true
    ConnectionDrainingTimeout: '20'
  aws:elb:loadbalancer:
    CrossZone: true
  aws:elasticbeanstalk:environment:
    ServiceRole: aws-elasticbeanstalk-service-role
  aws:elasticbeanstalk:application:
    Application Healthcheck URL: /
  aws:elasticbeanstalk:healthreporting:system:
    SystemType: enhanced
  aws:autoscaling:launchconfiguration:
    IamInstanceProfile: aws-elasticbeanstalk-ec2-role
    InstanceType: t2.micro
    EC2KeyName: workstation-uswest2
  aws:autoscaling:updatepolicy:rollingupdate:
    RollingUpdateType: Health
    RollingUpdateEnabled: true
EnvironmentTier:
  Type: Standard
  Name: WebServer
AWSConfigurationTemplateVersion: 1.1.0.0
Tags:
  Cost Center: WebApp Dev
```

您可修改保存的配置的内容并将其保存在 Amazon S3 中的同一位置。存储在正确位置的任何格式正确的保存的配置均可使用 Elastic Beanstalk 管理控制台应用于环境。

支持以下键。
+ **AWSConfigurationTemplateVersion**（必填）-配置模板版本 (1.1.0.0)。

  ```
  AWSConfigurationTemplateVersion: 1.1.0.0
  ```
+ **Platform** – 环境的平台版本的 Amazon 资源名称 (ARN)。您可以按 ARN 或解决方案堆栈名称指定平台。

  ```
  Platform:
    PlatformArn: arn:aws:elasticbeanstalk:us-east-2::platform/Java 8 running on 64bit Amazon Linux/2.5.0
  ```
+ **SolutionStack**— 用于创建环境的[解决方案堆栈](concepts.platforms.md)的全名。

  ```
  SolutionStack: 64bit Amazon Linux 2017.03 v2.5.0 running Java 8
  ```
+ **OptionSettings**— 要应用于环境的[配置选项](command-options.md)设置。例如，下面的条目将实例类型设为 t2.micro。

  ```
  OptionSettings:
    aws:autoscaling:launchconfiguration:
      InstanceType: t2.micro
  ```
+ **Tags** - 多达 47 个标签，应用于在环境中创建的资源。

  ```
  Tags:
    Cost Center: WebApp Dev
  ```
+ **EnvironmentTier**— 要创建的环境类型。对于 Web 服务器环境，您可不包含此部分 (Web 服务器为默认值)。对于工作线程环境，请使用以下设置。

  ```
  EnvironmentTier:
    Name: Worker
    Type: SQS/HTTP
  ```

**注意**  
您可以使用多种方法创建保存的配置并将其应用于您的 Elastic Beanstalk 环境。其中包括 Elastic Beanstalk 控制台、EB CLI 和 AWS CLI。  
有关创建和应用保存的配置的替代方法示例，请参阅下列主题：  
[在创建环境之前设置配置选项](environment-configuration-methods-before.md)
[在环境创建期间设置配置选项](environment-configuration-methods-during.md)
[在环境创建后设置配置选项](environment-configuration-methods-after.md)

# 标记保存的配置
<a name="environment-configuration-savedconfig-tagging"></a>

您可以将标签应用于 AWS Elastic Beanstalk 保存的配置。标签是与资源关联的键值对。 AWS 有关 Elastic Beanstalk 资源标记、使用案例、标签键和值约束以及支持的资源类型的信息，请参阅[标记 Elastic Beanstalk 应用程序资源](applications-tagging-resources.md)。

您可以在创建保存的配置时指定标签。在现有保存的配置中，您可以添加或删除标签，以及更新现有标签的值。您最多可以为每个保存的配置添加 50 个标签。

## 在创建保存的配置期间添加标签
<a name="environment-configuration-savedconfig-tagging.create"></a>

在使用 Elastic Beanstalk 控制台[保存配置](environment-configuration-savedconfig.md)时，您可以在 **Save Configuration (保存配置)** 页面上指定标签键和值。

如果使用 EB CLI 保存配置，则可以使用 **[eb config](eb3-config.md)** 的 `--tags` 选项添加标签。

```
~/workspace/my-app$ eb config --tags mytag1=value1,mytag2=value2
```

对于 AWS CLI 或其他基于 API 的客户端，使用命令中的`--tags`参数添加标签。**[create-configuration-template](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-configuration-template.html)**

```
$ aws elasticbeanstalk create-configuration-template \
      --tags Key=mytag1,Value=value1 Key=mytag2,Value=value2 \
      --application-name my-app --template-name my-template --solution-stack-name solution-stack
```

## 管理现有保存的配置的标签
<a name="environment-configuration-savedconfig-tagging.manage"></a>

可以在现有的 Elastic Beanstalk 保存的配置中添加、更新和删除标签。

**使用 Elastic Beanstalk 控制台管理保存的配置的标签**

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

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

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

1. 选择要管理的已保存配置。

1. 选择 **Actions (操作)**，然后选择 **Manage tags (管理标签)**。

1. 使用屏幕上的表单添加、更新或删除标签。

1. 要保存更改，请选择页面底部的 **Apply**（应用）。

如果使用 EB CLI 更新保存的配置，则可使用 **[eb tags](eb3-tags.md)** 来添加、更新、删除或列出标签。

例如，以下命令会列出保存的配置中的标签。

```
~/workspace/my-app$ eb tags --list --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:configurationtemplate/my-app/my-template"
```

以下命令会更新标签 `mytag1` 并删除标签 `mytag2`。

```
~/workspace/my-app$ eb tags --update mytag1=newvalue --delete mytag2 \
      --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:configurationtemplate/my-app/my-template"
```

有关选项和更多示例的完整列表，请参阅 `eb tags`。

对于 AWS CLI 或其他基于 API 的客户端，使用**[list-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/list-tags-for-resource.html)**命令列出已保存配置的标签。

```
$ aws elasticbeanstalk list-tags-for-resource --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:configurationtemplate/my-app/my-template"
```

使用 **[update-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-tags-for-resource.html)** 命令可在保存的配置中添加、更新或删除标签。

```
$ aws elasticbeanstalk update-tags-for-resource \
      --tags-to-add Key=mytag1,Value=newvalue --tags-to-remove mytag2 \
      --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:configurationtemplate/my-app/my-template"
```

在 `--tags-to-add` 的 **update-tags-for-resource** 参数中指定要添加的标签和要更新的标签。添加了一个不存在的标签，更新了现有标签的值。

**注意**  
要将某些 EB CLI 和 AWS CLI 命令与 Elastic Beanstalk 保存的配置一起使用，您需要保存的配置的 ARN。要构造 ARN，首先请使用以下命令检索保存的配置的名称。  

```
$ aws elasticbeanstalk describe-applications --application-names my-app
```
在命令输出中查找 `ConfigurationTemplates` 键。此元素显示保存的配置的名称。在本页面上提到的命令中指定 `my-template` 的地方使用此名称。