

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 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. 在導覽窗格中，選擇**環境**，然後在清單中選擇您環境的名稱。

1. 選擇 **Actions** (動作)，然後選擇 **Save Configuration** (儲存組態)。

1. 使用畫面顯示表單來命名儲存的組態。您可選擇性地提供簡短描述，並新增標籤索引鍵和值。

1. 選擇**儲存**。  
![Elastic Beanstalk 主控台上的儲存組態頁面](http://docs.aws.amazon.com/zh_tw/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 儲存貯體內以您的應用程式命名之資料夾。例如，us-west-2 區域中對於 123456789012 帳戶一個名為 `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
  ```
+ **平台** – 環境平台版本的 Amazon Resource Name (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
  ```
+ **標籤** – 最多 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)