

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

# 使用 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 和 Amazon CLI。  
有关创建和应用保存的配置的替代方法示例，请参阅下列主题：  
[在创建环境之前设置配置选项](environment-configuration-methods-before.md)
[在环境创建期间设置配置选项](environment-configuration-methods-during.md)
[在环境创建后设置配置选项](environment-configuration-methods-after.md)

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

**保存环境的配置**

1. 打开 [Elastic Beanstalk](https://console.amazonaws.cn/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 Amazon Web Services 区域

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

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

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

1. 选择**保存**。  
![\[Elastic Beanstalk 控制台上的“Save Configuration (保存配置)”页面\]](http://docs.amazonaws.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.amazonaws.cn/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 Amazon Web Services 区域

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 和 Amazon CLI。  
有关创建和应用保存的配置的替代方法示例，请参阅下列主题：  
[在创建环境之前设置配置选项](environment-configuration-methods-before.md)
[在环境创建期间设置配置选项](environment-configuration-methods-during.md)
[在环境创建后设置配置选项](environment-configuration-methods-after.md)