

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

# 組態選項
<a name="command-options"></a>

Elastic Beanstalk 定義大量組態選項，您可藉此設定環境的行為和其中的資源。組態選項以命名空間分類，例如，`aws:autoscaling:asg`，定義環境 Auto Scaling 群組的選項。

在您建立環境時，Elastic Beanstalk 主控台和 EB CLI 會設定組態選項，其中包括您明確設定的選項以及用戶端定義的[建議值](#configuration-options-recommendedvalues)。您亦可於已儲存組態和組態檔案中設定組態選項。若在多個位置設定相同選項，使用的數值將取決於[優先順序](#configuration-options-precedence)。

在環境建立前，組態選項設定能夠由文字格式組成並儲存，再於環境建立期間透過支援的用戶端套用，環境建立後則能夠新增、修改或移除。如需這三階段使用組態選項的可用方法詳細分析，請閱讀下列主題：
+ [於環境建立前設定組態選項](environment-configuration-methods-before.md)
+ [於環境建立期間設定組態選項](environment-configuration-methods-during.md)
+ [於環境建立後設定組態選項](environment-configuration-methods-after.md)

如需命名空間和選項的完整清單，以及各自的預設值和支援的值，請參閱 [適用於所有環境的一般選項](command-options-general.md) 和 [平台特定選項](command-options-specific.md)。

## 優先順序
<a name="configuration-options-precedence"></a>

在環境建立期間，多個來源的組態選項依下列優先順序 (自最高到最低) 套用：
+ **直接套用至環境的設定** – 任何用戶端在 Elastic Beanstalk API 上建立環境或更新環境操作期間指定的設定，包括 Elastic Beanstalk 主控台、EB CLI AWS CLI和 SDKs。Elastic Beanstalk 主控台和 EB CLI 亦針對此層級的部分選項套用[建議值](#configuration-options-recommendedvalues) (除非受到覆寫)。
+ **已儲存組態** – 未直接套用至環境的選項設定會從已儲存組態載入 (若已指定)。
+ **組態檔案 (.ebextensions)** – 未直接套用至環境且未於已儲存組態指定的選項設定，會自應用程式原始碼套件根目錄的 `.ebextensions` 資料夾內的組態檔案載入。

  組態檔案會依字母順序執行。例如，`.ebextensions/01run.config` 在 `.ebextensions/02do.config` 之前執行。
+ **預設值** – 若組態選項具備預設值，此值僅於上述層級未設定此選項時套用。

若在多個位置定義相同組態選項，將套用具備最高優先順序的設定。若採用已儲存組態套用的設定或採用直接套用至環境的設定，該設定將做為環境資訊的一部分存放。您可以[透過 AWS CLI](environment-configuration-methods-after.md#configuration-options-remove-awscli) 或[透過 EB CLI](environment-configuration-methods-after.md#configuration-options-remove-ebcli) 來移除這些設定。

組態檔案內的設定不會直接套用至環境，且若未修改組態檔案並部署新的應用程式版本，將無法移除。若以其他方法套用的設定被移除，相同設定將自原始碼套件的組態檔案載入。

例如，假設您於環境建立期間，透過 Elastic Beanstalk 主控台、命令列選項或已儲存組態，將環境內的執行個體數量下限設定為 5。而您的應用程式原始碼套件納入的組態檔案，將執行個體數量下限設定為 2。

在您建立環境時，Elastic Beanstalk 會將 `MinSize` 命名空間中的 `aws:autoscaling:asg` 選項設定為 5。若之後環境資訊移除該選項，此值會從組態檔案載入，並將執行個體數量下限設定為 2。若之後原始碼套件移除該組態檔案並重新部署，Elastic Beanstalk 會使用預設設定 1。

## 建議值
<a name="configuration-options-recommendedvalues"></a>

Elastic Beanstalk 命令列界面 (EB CLI) 和 Elastic Beanstalk 主控台均為部分組態選項提供建議值。這些值可與預設值不同，且是在您建立環境時由 API 層級設定。建議值可讓 Elastic Beanstalk 改善預設環境資訊，不會使 API 回溯成為不相容的變更。

例如，EB CLI 和 Elastic Beanstalk 主控台均可針對 EC2 執行個體類型設定組態選項 (`InstanceType` 命名空間內的 `aws:autoscaling:launchconfiguration`)。各個用戶端可採用不同方式來覆寫預設設定。在主控台內，您可於 **Create New Environment (建立新的環境)** 精靈的 **Configuration Details (組態詳細資訊)** 頁面，自其中的下拉式選單選擇不同的執行個體類型。若採用 EB CLI，則可針對 [`--instance_type`](eb3-create.md) 使用 **eb create** 參數。

由於建議值是在 API 層級設定，這些值會覆寫您於組態檔案或已儲存組態內設定的相同選項的數值。下列選項會經過設定：

**Elastic Beanstalk 主控台**
+ 命名空間：`aws:autoscaling:launchconfiguration`

  選項名稱：`IamInstanceProfile`、`EC2KeyName`、`InstanceType`
+ 命名空間：`aws:autoscaling:updatepolicy:rollingupdate`

  選項名稱：`RollingUpdateType`、`RollingUpdateEnabled`
+ 命名空間：`aws:elasticbeanstalk:application`

  選項名稱：`Application Healthcheck URL`
+ 命名空間：`aws:elasticbeanstalk:command`

  選項名稱：`DeploymentPolicy`、`BatchSize`、`BatchSizeType`
+ 命名空間：`aws:elasticbeanstalk:environment`

  選項名稱：`ServiceRole`
+ 命名空間：`aws:elasticbeanstalk:healthreporting:system`

  選項名稱：`SystemType` 和 `HealthCheckSuccessThreshold`
+ 命名空間：`aws:elasticbeanstalk:sns:topics`

  選項名稱：`Notification Endpoint`
+ 命名空間：`aws:elasticbeanstalk:sqsd`

  選項名稱：`HttpConnections`
+ 命名空間：`aws:elb:loadbalancer`

  選項名稱：`CrossZone`
+ 命名空間：`aws:elb:policies`

  選項名稱：`ConnectionDrainingTimeout`、`ConnectionDrainingEnabled`

**EB CLI**
+ 命名空間：`aws:autoscaling:launchconfiguration`

  選項名稱：`IamInstanceProfile`、`InstanceType`
+ 命名空間：`aws:autoscaling:updatepolicy:rollingupdate`

  選項名稱：`RollingUpdateType`、`RollingUpdateEnabled`
+ 命名空間：`aws:elasticbeanstalk:command`

  選項名稱：`BatchSize` 和 `BatchSizeType`
+ 命名空間：`aws:elasticbeanstalk:environment`

  選項名稱：`ServiceRole`
+ 命名空間：`aws:elasticbeanstalk:healthreporting:system`

  選項名稱：`SystemType`
+ 命名空間：`aws:elb:loadbalancer`

  選項名稱：`CrossZone`
+ 命名空間：`aws:elb:policies`

  選項名稱：`ConnectionDrainingEnabled`