組態選項 - AWS Elastic Beanstalk

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

組態選項

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

    選項名稱:IamInstanceProfileEC2KeyNameInstanceType

  • 命名空間:aws:autoscaling:updatepolicy:rollingupdate

    選項名稱:RollingUpdateTypeRollingUpdateEnabled

  • 命名空間:aws:elasticbeanstalk:application

    選項名稱:Application Healthcheck URL

  • 命名空間:aws:elasticbeanstalk:command

    選項名稱:DeploymentPolicyBatchSizeBatchSizeType

  • 命名空間:aws:elasticbeanstalk:environment

    選項名稱:ServiceRole

  • 命名空間:aws:elasticbeanstalk:healthreporting:system

    選項名稱:SystemTypeHealthCheckSuccessThreshold

  • 命名空間:aws:elasticbeanstalk:sns:topics

    選項名稱:Notification Endpoint

  • 命名空間:aws:elasticbeanstalk:sqsd

    選項名稱:HttpConnections

  • 命名空間:aws:elb:loadbalancer

    選項名稱:CrossZone

  • 命名空間:aws:elb:policies

    選項名稱:ConnectionDrainingTimeoutConnectionDrainingEnabled

EB CLI
  • 命名空間:aws:autoscaling:launchconfiguration

    選項名稱:IamInstanceProfileInstanceType

  • 命名空間:aws:autoscaling:updatepolicy:rollingupdate

    選項名稱:RollingUpdateTypeRollingUpdateEnabled

  • 命名空間:aws:elasticbeanstalk:command

    選項名稱:BatchSizeBatchSizeType

  • 命名空間:aws:elasticbeanstalk:environment

    選項名稱:ServiceRole

  • 命名空間:aws:elasticbeanstalk:healthreporting:system

    選項名稱:SystemType

  • 命名空間:aws:elb:loadbalancer

    選項名稱:CrossZone

  • 命名空間:aws:elb:policies

    選項名稱:ConnectionDrainingEnabled