跳至內容

如何對 Amazon ECS 任務的容器運作狀態檢查失敗進行疑難排解?

1 分的閱讀內容
0

我的 Amazon Elastic Container Service (Amazon ECS) 任務未通過容器運作狀態檢查。

簡短說明

如果您的任務中的 Amazon ECS 容器使用您的服務無法通過的運作狀態檢查,您將收到以下錯誤:

「(服務 AWS 服務) (任務 ff3e71a4-d7e5-428b-9232-2345657889) 容器運作狀態檢查失敗。」

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

在本機測試容器,以確保其通過容器運作狀態檢查

在將容器佈建到 Amazon ECS 之前,請確保其能如預期運作。使用 Docker Docs 網站上的 HEALTHCHECK 測試您的容器。確認容器在 Dockerfile 中通過運作狀態檢查。然後,在任務定義中指定運作狀態檢查組態,以允許 Amazon ECS 容器代理程式監控和報告運作狀態檢查。

**注意:**Amazon ECS 不會監控內嵌在容器映像中且未在容器定義中指定的 Docker 運作狀態檢查。容器定義中指定的運作狀態檢查參數會覆寫容器映像中存在的 Docker 運作狀態檢查。

確認您為 Amazon ECS 任務使用正確的語法

確認傳遞給容器的命令是準確的,並且您使用了正確的命令語法。請勿用雙引號分隔運作狀態檢查命令,例如 ["CMD-SHELL", "healthcheck.sh", "||", "exit 1"]。而是使用下列命令語法:

["CMD-SHELL", "healthcheck.sh || exit 1"]

給您的容器足夠的時間來啟動

如果您的容器需要很長時間才能啟動,則其運作狀態檢查可能會失敗。在進階容器定義參數中設定 StartPeriod,以滿足您的組態需求。

對於長時間執行的任務,請檢查您的應用程式日誌

如果您的容器長時間執行,但是容器運作狀態檢查失敗,請檢查您的應用程式日誌。如果您的 Amazon ECS 任務使用 awslogs 日誌驅動程式,請檢查 Amazon CloudWatch 中的應用程式日誌。

**注意:**AWS Fargate 是一項受管服務,因此您無法存取底層基礎結構。若要解決 Fargate 的問題,請在 Amazon Elastic Compute Cloud (Amazon EC2) 中啟動 Amazon ECS 任務。然後,使用 SSH 連線到您的 Amazon EC2 執行個體。您也可以使用 ECS Exec 直接與 Amazon ECS 容器進行互動。

相關資訊

如何讓使用 Amazon EC2 啟動類型的 Amazon ECS 任務通過 Application Load Balancer 運作狀態檢查?