本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
組態選項
Elastic Beanstalk 定義大量組態選項,您可藉此設定環境的行為和其中的資源。組態選項以命名空間分類,例如,aws:autoscaling:asg
,定義環境 Auto Scaling 群組的選項。
在您建立環境時,Elastic Beanstalk 主控台和 EB CLI 會設定組態選項,其中包括您明確設定的選項以及用戶端定義的建議值。您亦可於已儲存組態和組態檔案中設定組態選項。若在多個位置設定相同選項,使用的數值將取決於優先順序。
在環境建立前,組態選項設定能夠由文字格式組成並儲存,再於環境建立期間透過支援的用戶端套用,環境建立後則能夠新增、修改或移除。如需這三階段使用組態選項的可用方法詳細分析,請閱讀下列主題:
如需命名空間和選項的完整清單,以及各自的預設值和支援的值,請參閱 適用於所有環境的一般選項 和 平台特定選項。
優先順序
在環境建立期間,多個來源的組態選項依下列優先順序 (自最高到最低) 套用:
-
直接套用至環境的設定 – 由任何用戶端 (包含 Elastic Beanstalk 主控台、EB CLI、AWS CLI 和軟體開發套件) 利用 Elastic Beanstalk API 在建立環境或更新環境操作期間指定的設定。Elastic Beanstalk 主控台和 EB CLI 亦針對此層級的部分選項套用建議值 (除非受到覆寫)。
-
已儲存組態 – 未直接套用至環境的選項設定會從已儲存組態載入 (若已指定)。
-
組態檔案 (.ebextensions) – 未直接套用至環境且未於已儲存組態指定的選項設定,會自應用程式原始碼套件根目錄的
.ebextensions
資料夾內的組態檔案載入。組態檔案會依字母順序執行。例如,
.ebextensions/01run.config
在.ebextensions/02do.config
之前執行。 -
預設值 – 若組態選項具備預設值,此值僅於上述層級未設定此選項時套用。
若在多個位置定義相同組態選項,將套用具備最高優先順序的設定。若採用已儲存組態套用的設定或採用直接套用至環境的設定,該設定將做為環境資訊的一部分存放。您可以透過 AWS CLI 或透過 EB CLI 來移除這些設定。
組態檔案內的設定不會直接套用至環境,且若未修改組態檔案並部署新的應用程式版本,將無法移除。若以其他方法套用的設定被移除,相同設定將自原始碼套件的組態檔案載入。
例如,假設您於環境建立期間,透過 Elastic Beanstalk 主控台、命令列選項或已儲存組態,將環境內的執行個體數量下限設定為 5。而您的應用程式原始碼套件納入的組態檔案,將執行個體數量下限設定為 2。
在您建立環境時,Elastic Beanstalk 會將 MinSize
命名空間中的 aws:autoscaling:asg
選項設定為 5。若之後環境資訊移除該選項,此值會從組態檔案載入,並將執行個體數量下限設定為 2。若之後原始碼套件移除該組態檔案並重新部署,Elastic Beanstalk 會使用預設設定 1。
建議值
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 使用 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