本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定環境的增強型健康狀況規則
AWS Elastic Beanstalk 增強型運作狀態報告倚賴一組規則,以確定您環境的運作狀態。這些的部分規則可能不適用於您的特定應用程式。以下是一些常見範例:
-
您使用用戶端測試工具。在此案例中,預期經常發生 HTTP 用戶端 (4xx) 錯誤。
-
您可以將 AWS WAF 與環境的 Application Load Balancer 搭配使用,以封鎖不必要的傳入流量。在此案例中,Application Load Balancer 會為每個拒絕的傳入訊息傳回 HTTP 403。
根據預設,在判斷環境的運作狀態時,Elastic Beanstalk 包含所有應用程式 HTTP 4xx 錯誤。它會根據錯誤率,將您的環境運作狀態從 OK (正常) 變更為 Warning (警告)、Degraded (降級) 或 Severe (嚴重)。若要正確處理如範例中所提的情況,Elastic Beanstalk 可讓您設定一些增強型運作狀態規則。您可以選擇忽略環境執行個體上的應用程式 HTTP 4xx 錯誤,或忽略環境負載平衡器傳回的 HTTP 4xx 錯誤。本主題說明如何進行這些組態變更。
注意
目前,這是唯一可用的增強型運作狀態規則自訂。您無法將增強型運作狀態設為忽略 4xx 以外的其他 HTTP 錯誤。
使用 Elastic Beanstalk 主控台設定進階型運作狀態規則
您可以使用 Elastic Beanstalk 主控台在您環境中設定增強型運作狀態規則。
使用 Elastic Beanstalk 主控台設定 HTTP 4xx 狀態碼檢查
開啟 Elastic Beanstalk 主控台
,然後在 Regions (區域) 清單中選取您的 AWS 區域。 -
在導覽窗格中,選擇 Environments (環境),然後在清單中選擇您環境的名稱。
注意
如果您有許多環境,請使用搜尋列來篩選環境清單。
在導覽窗格中,選擇 Configuration (組態)。
-
在 Monitoring (監控) 組態類別中,選擇 Edit (編輯)。
-
在 Health monitoring rule customization (運作狀態監控規則自訂) 下,啟用或停用所需的 Ignore (忽略) 選項。
-
若要儲存變更,請選擇頁面底部的儲存變更。
使用 EB CLI 設定增強型運作狀態規則
您可以透過在本機儲存環境組態、新增設定增強型運作狀態規則的項目,然後將組態上傳到 Elastic Beanstalk。您可在建立期間或之後將儲存的設定套用到環境中。
使用 EB CLI 和儲存的組態設定 HTTP 4xx 狀態碼檢查
-
初始化您的專案資料夾 eb init。
-
透過執行 eb create 命令來建立環境。
-
透過執行 eb config save 命令以在本機儲存組態範本。以下範例使用
--cfg
選項以指定組態的名稱。$
eb config save --cfg
Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml01-base-state
-
在文字編輯器中開啟已儲存的組態檔案。
-
在
OptionSettings
>aws:elasticbeanstalk:healthreporting:system:
下,新增ConfigDocument
金鑰以列出每個增強型運作狀態規則來做設定。以下ConfigDocument
停用應用程式 HTTP 4xx 狀態碼的檢查,同時保持負載平衡器 HTTP 4xx 代碼的檢查。OptionSettings: ... aws:elasticbeanstalk:healthreporting:system:
ConfigDocument: Rules: Environment: Application: ApplicationRequests4xx: Enabled: false ELB: ELBRequests4xx: Enabled: true Version: 1
SystemType: enhanced ...注意
您可將
Rules
和CloudWatchMetrics
合併在相同的ConfigDocument
選項設定中。CloudWatchMetrics
會在 發佈環境的 Amazon CloudWatch 自訂指標 中詳加說明。如果您之前已啟用
CloudWatchMetrics
,使用 eb config save 命令擷取的組態檔案已經擁有ConfigDocument
金鑰及CloudWatchMetrics
部分。請勿刪除 — 將Rules
區段加入到相同的ConfigDocument
選項值。 -
儲存組態檔案並關閉文字編輯器。在這個範例中,已更新的組態檔案是以不同於下載的組態檔案名稱儲存 (
02-cloudwatch-enabled.cfg.yml
)。這會在檔案上傳時建立單獨的已儲存組態。您可以使用與下載的檔案相同的名稱,以覆寫現有的組態,不用建立新的名稱。 -
使用 eb config put 命令上傳更新的組態檔案到 Elastic Beanstalk。
$
eb config put
02-cloudwatch-enabled
當您在已儲存的組態使用 eb config
get
和put
命令時,請不要包含副檔名。 -
套用儲存的組態至您的執行環境。
$
eb config --cfg
02-cloudwatch-enabled
該
--cfg
選項會指定一個已套用至環境並已命名的組態檔案。您可以在本機儲存組態檔,或可儲存在 Elastic Beanstalk 中。如果已指定名稱的組態檔案同時存在兩個位置中,則 EB CLI 會使用本機檔案。
使用 Config 文件設定增強型運作狀態規則
適用於增強型運作狀態規則的組態 (config) 文件是 JSON 文件,其中列出要設定的規則。
以下範例顯示的 Config 文件停用應用程式 HTTP 4xx 狀態碼的檢查,並啟用負載平衡器 HTTP 4xx 狀態碼的檢查。
{
"Rules": {
"Environment": {
"Application": {
"ApplicationRequests4xx": {
"Enabled": false
}
},
"ELB": {
"ELBRequests4xx": {
"Enabled": true
}
}
}
},
"Version": 1
}
對於 AWS CLI,您將文件當做 Value
金鑰值在選項設定引數中傳遞,而其本身是一種 JSON 物件。在這種情況下,您必須將嵌入文件中的引號逸出。以下命令會檢查組態設定是否有效。
$ aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings '[
{
"Namespace": "aws:elasticbeanstalk:healthreporting:system",
"OptionName": "ConfigDocument",
"Value": "{\"Rules\": { \"Environment\": { \"Application\": { \"ApplicationRequests4xx\": { \"Enabled\": false } }, \"ELB\": { \"ELBRequests4xx\": {\"Enabled\": true } } } }, \"Version\": 1 }"
}
]'
如需 YAML.ebextensions
中的組態檔案,您可以依原狀提供 JSON 文件。
option_settings:
- namespace: aws:elasticbeanstalk:healthreporting:system
option_name: ConfigDocument
value: {
"Rules": {
"Environment": {
"Application": {
"ApplicationRequests4xx": {
"Enabled": false
}
},
"ELB": {
"ELBRequests4xx": {
"Enabled": true
}
}
}
},
"Version": 1
}