Amazon ECS 服務事件訊息 - Amazon Elastic Container Service
服務 (service-name) 已達到穩定狀態。服務 (service-name) 無法放置任務,因為沒有容器執行個體符合其所有要求。服務 (service-name) 無法放置任務,因為沒有容器執行個體符合其所有要求。最接近的相符容器執行個體 (容器執行個體 id) 可用 CPU 單位不足。服務 (service-name) 無法放置任務,因為沒有容器執行個體符合其所有要求。最接近的相符容器執行個體 container-instance-id 發生「代理」錯誤。service (service-name) (task task-id) (instance instance-id) is unhealthy in (elb elb-name) due to (reason Instance has failed at least the UnhealthyThreshold number of health checks consecutively.)服務 (service-name) 無法成功持續啟動任務。服務 (service-name) 操作正在受到調節。將稍後再試。服務 (service-name) 在部署期間因服務部署組態而無法停止或啟動任務。更新 minimumHealthyPercent 或 maximumPercent 值,然後再試一次。服務 (service-name) 無法放置任務。原因:您已達到可以同時執行的任務數量限制服務 (service-name) 無法放置任務。原因:內部錯誤。服務 (service-name) 無法放置任務。原因:請求的 CPU 組態超過您的限制。服務 (service-name) 無法放置任務。原因:請求的 MEMORY 組態超過您的限制。服務 (service-name) 無法放置任務。原因:您已達到可以同時執行的 vCPU 數量限制服務 (service-name) 無法達到穩定狀態,因為任務集 (taskSet-ID) 無法縮減。原因:受保護的任務數量超過所需的任務數量服務 (service-name) 無法達到穩定狀態。原因:在容量提供者中找不到容器執行個體。服務 (service-name) 無法放置任務。原因:目前無法使用容量。請稍後再試一次,或在不同的可用區域中嘗試。服務 (service-name) 部署失敗:任務無法啟動。service (service-name) Timed out waiting for Amazon ECS Agent to start. Please check logs at /var/log/ecs/ecs-agent.log".service (service-name) task set (taskSet-ID) (task task-id) is not healthy in target-group (targetGroup-ARN)) due to TARGET GROUP IS NOT FOUND.service (service-name) task set (taskSet-ID) (task task-id) is not healthy in target-group (targetGroup-ARN)) due to TARGET IS NOT FOUND.IAM 許可政策設定錯誤或已變更,ECS 無法再維護您的服務IAM 信任關係設定錯誤或已變更,ECS 無法再維護您的服務service (service-name) 無法啟動 deployment deployment-id 的數目任務。service (service-name) 無法將任務放置在叢集中,因為超過任務佈建容量限制。

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

Amazon ECS 服務事件訊息

您會在 Amazon ECS 主控台中看到以下服務事件訊息範例:

服務 (service-name) 已達到穩定狀態。

當服務處於良好狀態且任務數量達到預期,進而進入穩定狀態時,服務排程器會傳送 service (service-name) has reached a steady state. 服務事件。

服務排程器會定期報告狀態,因此您可能會多次收到此訊息。

服務 (service-name) 無法放置任務,因為沒有容器執行個體符合其所有要求。

服務排程器會在找不到可用資源來新增另一個任務時傳送此事件訊息。可能的原因如下:

使用容量提供者自動擴展 EC2 執行個體。如需詳細資訊,請參閱EC2 工作負載的 Amazon ECS 容量提供者

如果打算使用容量提供者,請確定您已傳遞容量提供者策略,或具有與叢集相關聯的預設容量提供者策略,且未傳遞啟動類型與容量提供者策略作為輸入

您的叢集中找不到任何容器執行個體

如果嘗試執行任務的叢集中沒有已註冊的容器執行個體,您會收到此錯誤。您應該將容器執行個體新增到您的叢集。如需詳細資訊,請參閱啟動 Amazon ECS Linux 容器執行個體

連接埠不足

如果您的任務使用固定的主機連接埠映射 (例如,您的任務為 Web 伺服器使用主機的連接埠 80),則您每項任務至少必須擁有一個容器執行個體,因為一個容器一次只能使用單一個主機連接埠。您應該新增容器執行個體到您的叢集,或降低所需任務數量。

註冊的連接埠太多

用於任務置放的最適配容器執行個體,其保留連接埠數量不得超過每個容器執行個體最多 100 個主機連接埠的限制。使用動態主機連接埠映射可以修復此問題。

連接埠已在使用中

此任務的任務定義在其連接埠映射中使用的連接埠,與所選容器執行個體上執行的任務所使用的連接埠相同。服務事件訊息會將具有所選容器執行個體 ID 作為以下訊息的一部分。

The closest matching container-instance is already using a port required by your task.
記憶體不足

如果您的任務定義指定 1000 MiB 的記憶體,而您叢集中的容器執行個體每個都有 1024 MiB 的記憶體,則您每個容器執行個體只能執行一個此任務複本。您可以在任務定義中試驗使用較少的記憶體,以便您每個容器執行個體可以啟動多項任務,或在您的叢集中啟動更多的容器執行個體。

注意

若您嘗試盡可能為特定執行個體類型的任務提供最多的記憶體,以將資源使用率最大化,請參閱「保留 Amazon ECS Linux 容器執行個體記憶體」。

CPU 不足

容器執行個體的每個 CPU 核心都有 1,024 CPU 單位。如果您的任務定義指定 1,000 CPU 單位,而您叢集中的容器執行個體每個都有 1,024 CPU 單位,您每個容器執行個體只能執行一個此任務複本。您可以在任務定義中試驗使用較少的 CPU 單位,以便您每個容器執行個體可以啟動多項任務,或在您的叢集中啟動更多的容器執行個體。

可用的 ENI 連接點不足

使用 awsvpc 網路模式的每項任務都會收到自己的彈性網路介面 (ENI),連接到裝載它的容器執行個體。Amazon EC2 執行個體有可以連接至其的 ENI 數目限制,而且有 ENI 容量可用的叢集中沒有容器執行個體。

個別容器執行個體的 ENI 限制取決於以下條件:

  • 如果您尚未選擇使用 awsvpcTrunking 帳戶設定,則每個容器執行個體的 ENI 限制取決於執行個體類型。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的每個執行個體類型每個網路介面的 IP 地址

  • 如果您選擇使用 awsvpcTrunking 帳戶設定,但您尚未在選擇使用後,使用支援的執行個體類型啟動新的容器執行個體,則每個容器執行個體的 ENI 限制仍為預設值。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的每個執行個體類型每個網路介面的 IP 地址

  • 如果您選擇使用 awsvpcTrunking 帳戶設定,且在選擇使用後,使用支援的執行個體類型啟動新的容器執行個體,則會有額外的 ENI 可用。如需詳細資訊,請參閱援更多 Amazon ECS 容器網路介面的執行個體

如需選擇使用的 awsvpcTrunking 帳戶設定詳細資訊,請參閱 增加 Amazon ECS Linux 容器執行個體網路介面數量

您可以將容器執行個體新增到您的叢集,以提供更多可用的網路轉接器。

容器執行個體遺漏必要的屬性

有些任務定義參數需要在容器執行個體上安裝特定的 Docker 遠端 API 版本。其他,例如記錄驅動程式選項,需要容器執行個體向 ECS_AVAILABLE_LOGGING_DRIVERS 代理組態變數註冊這些日誌驅動程式。如果您的任務定義包含一個需要特定容器執行個體屬性的參數,而您沒有任何可用的容器執行個體可滿足此需求,即無法置放任務。

此錯誤的常見原因是,服務使用的任務採用了 awsvpc 網路模式與 EC2。您指定的叢集在建立服務時,並未於 awsvpcConfiguration 中所指定的相同子網路內註冊任何容器執行個體。

您可以使用 AWSSupport-TroubleshootECSContainerInstance 執行手冊進行疑難排解。執行手冊會檢閱執行個體的使用者資料是否包含正確的叢集資訊、執行個體設定檔是否包含必要的許可,以及網路組態問題。如需詳細資訊,請參閱 AWS Systems Manager Automation runbook reference User Guide 中的 AWSSupport-TroubleshootECSContainerInstance

有關特定任務定義參數和代理組態變數需要哪些必要屬性的詳細資訊,請參閱「Fargate 的 Amazon ECS 任務定義參數」和「Amazon ECS 容器代理程式組態」。

服務 (service-name) 無法放置任務,因為沒有容器執行個體符合其所有要求。最接近的相符容器執行個體 (容器執行個體 id) 可用 CPU 單位不足。

用於任務置放的最適配容器執行個體,其 CPU 單位不足以滿足任務定義中的需求。檢閱任務定義之任務大小和容器定義參數的 CPU 需求。

服務 (service-name) 無法放置任務,因為沒有容器執行個體符合其所有要求。最接近的相符容器執行個體 container-instance-id 發生「代理」錯誤。

適合放置任務之最接近相符容器執行個體中的 Amazon ECS 容器代理中斷連線。如果您可以使用 SSH 連線到容器執行個體,您即可檢查代理日誌,如需詳細資訊,請參閱「Amazon ECS 容器代理程式日誌組態參數」。您也應該確認代理是否在執行個體上執行。如果您使用的是 Amazon ECS 最佳化 AMI,您可以使用下列命令嘗試停用並重新啟動代理。

  • 對於 Amazon ECS 最佳化 Amazon Linux 2 AMI 與 Amazon ECS 最佳化 Amazon Linux 2023 AMI

    sudo systemctl restart ecs
  • 對於 Amazon ECS 最佳化 Amazon Linux AMI

    sudo stop ecs && sudo start ecs

service (service-name) (task task-id) (instance instance-id) is unhealthy in (elb elb-name) due to (reason Instance has failed at least the UnhealthyThreshold number of health checks consecutively.)

此服務已在負載平衡器註冊,但負載平衡器的運作狀態檢查失敗。訊息包含任務 ID,可協助識別哪些特定任務未通過運作狀態檢查。如需詳細資訊,請參閱對 Amazon ECS 中的服務負載平衡器進行疑難排解

服務 (service-name) 無法成功持續啟動任務。

此服務包含在連續嘗試後無法啟動的任務。此時,服務排程器開始逐漸增加重試之間的時間。您應該對任務無法啟動的原因進行故障診斷。如需詳細資訊,請參閱Amazon ECS 服務限流邏輯

服務更新之後,例如使用更新的任務定義,服務排程器就會恢復正常的行為。

服務 (service-name) 操作正在受到調節。將稍後再試。

由於 API 調節限制,此服務無法啟動更多任務。一旦服務排程器能夠啟動更多任務,就會繼續執行。

若要請求提高 API 比率限制配額,請開啟 AWS 支援 Center ( 中心) 頁面,並視需要登入,然後選擇 Create case (建立案例)。選擇 Service limit increase (提高服務限制)。填妥並提交表格。

服務 (service-name) 在部署期間因服務部署組態而無法停止或啟動任務。更新 minimumHealthyPercent 或 maximumPercent 值,然後再試一次。

由於部署組態,此服務無法在服務部署期間停止或啟動任務。部署組態包含在建立服務時定義的 minimumHealthyPercentmaximumPercent 值。這些值也可在現有的服務上進行更新。

minimumHealthyPercent 代表在部署期間或容器執行個體排空時,應為服務執行的任務數量下限。這表示的是服務所需任務數量的百分比。此值會向上捨入。例如,最小運作狀態良好的百分比為 50,且所需的任務數量為四,則排程器可以先停止兩個現有的任務,再開始兩個新的任務。同樣地,如果最小運作狀態良好的百分比為 75%,而所需的任務計數為 2,則排程器無法停止任何任務,因為產生的值也是 2。

maximumPercent 代表在部署期間或容器執行個體排空時,應為服務執行的任務數量上限。這表示的是服務所需任務數量的百分比。此值會向下捨去。例如,最大百分比為 200,且所需的任務數量為四,則排程器可以先停止四個現有的任務,再開始四個新的任務。同樣地,如果最大百分比為 125,且所需的任務計數為 3,則排程器無法停止任何任務,因為產生的值也是 3。

設定最小最小運作狀態良好的百分比或最大百分比時,您應確定排程器在觸發部署時,至少可以停止或啟動一項任務。

服務 (service-name) 無法放置任務。原因:您已達到可以同時執行的任務數量限制

您可以請求提升導致錯誤的資源配額。如需詳細資訊,請參閱Amazon ECS 服務配額。若要請求增加配額,請參閱《Service Quotas 使用者指南》中的請求提高配額

服務 (service-name) 無法放置任務。原因:內部錯誤。

以下是導致此錯誤的可能原因:

由於子網路位於不受支持的可用區域中,該服務無法開始任務。

如需支援的區域的 Fargate 和可用區域的相關資訊,請參閱 支援 AWS Fargate 上 Amazon ECS 的區域

如需如何檢視子網路可用區域的相關資訊,請參閱《Amazon VPC 使用者指南》中的檢視您的子網路

服務 (service-name) 無法放置任務。原因:請求的 CPU 組態超過您的限制。

您可以請求提升導致錯誤的資源配額。如需詳細資訊,請參閱Amazon ECS 服務配額。若要請求增加配額,請參閱《Service Quotas 使用者指南》中的請求提高配額

服務 (service-name) 無法放置任務。原因:請求的 MEMORY 組態超過您的限制。

您可以請求提升導致錯誤的資源配額。如需詳細資訊,請參閱Amazon ECS 服務配額。若要請求增加配額,請參閱《Service Quotas 使用者指南》中的請求提高配額

服務 (service-name) 無法放置任務。原因:您已達到可以同時執行的 vCPU 數量限制

AWS Fargate 正在從任務計數型配額轉換為 vCPU 型配額。

對於 Fargate vCPU 型配額,您可請求提高配額。如需詳細資訊,請參閱Amazon ECS 服務配額。若要請求提高 Fargate 配額,請參閱《Service Quotas 使用者指南》中的請求提高配額

服務 (service-name) 無法達到穩定狀態,因為任務集 (taskSet-ID) 無法縮減。原因:受保護的任務數量超過所需的任務數量

服務具有的受保護任務數超過所需的任務數量。您可以執行下列任一動作:

  • 等待目前任務的保護到期,然後終止這些任務。

  • 判斷哪些任務可以停止,並透過 UpdateTaskProtection API,將 protectionEnabled 選項設定為 false,取消這些任務的保護狀態。

  • 將服務的所需任務計數提高到超過受保護任務的數目。

服務 (service-name) 無法達到穩定狀態。原因:在容量提供者中找不到容器執行個體。

服務排程器會在找不到可用資源來新增另一個任務時傳送此事件訊息。可能的原因如下:

沒有與叢集關聯的容量提供者

使用 describe-services 確認您是否擁有與叢集相關聯的容量提供者。您可以更新服務的容量提供者策略。

確認容量提供者中有可用的容量。若使用 EC2,請確定容器執行個體符合任務定義需求。

您的叢集中找不到任何容器執行個體

如果嘗試執行任務的叢集中沒有已註冊的容器執行個體,您會收到此錯誤。您應該將容器執行個體新增到您的叢集。如需詳細資訊,請參閱啟動 Amazon ECS Linux 容器執行個體

連接埠不足

如果任務使用固定的主機連接埠映射 (例如,任務為 Web 伺服器使用主機的連接埠 80),每個任務至少必須擁有一個容器執行個體。同一時間,一個容器只能使用一個主機連接埠。您應該新增容器執行個體到您的叢集,或降低所需任務數量。

註冊的連接埠太多

用於任務置放的最適配容器執行個體,其保留連接埠數量不得超過每個容器執行個體最多 100 個主機連接埠的限制。使用動態主機連接埠映射可以修復此問題。

連接埠已在使用中

此任務的任務定義在其連接埠映射中使用的連接埠,與所選容器執行個體上執行的任務所使用的連接埠相同。服務事件訊息會將具有所選容器執行個體 ID 作為以下訊息的一部分。

The closest matching container-instance is already using a port required by your task.
記憶體不足

如果您的任務定義指定 1000 MiB 的記憶體,而您叢集中的容器執行個體每個都有 1024 MiB 的記憶體,則您每個容器執行個體只能執行一個此任務複本。您可以在任務定義中試驗使用較少的記憶體,以便您每個容器執行個體可以啟動多項任務,或在您的叢集中啟動更多的容器執行個體。

注意

若您嘗試盡可能為特定執行個體類型的任務提供最多的記憶體,以將資源使用率最大化,請參閱「保留 Amazon ECS Linux 容器執行個體記憶體」。

可用的 ENI 連接點不足

使用 awsvpc 網路模式的每項任務都會收到自己的彈性網路介面 (ENI),連接到裝載它的容器執行個體。Amazon EC2 執行個體對可連接的 ENI 數量有上限限制,且叢集中沒有具備可用 ENI 容量的容器執行個體。

個別容器執行個體的 ENI 限制取決於以下條件:

  • 如果您尚未選擇使用 awsvpcTrunking 帳戶設定,則每個容器執行個體的 ENI 限制取決於執行個體類型。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的每個執行個體類型每個網路介面的 IP 地址

  • 如果您選擇使用 awsvpcTrunking 帳戶設定,但您尚未在選擇使用後,使用支援的執行個體類型啟動新的容器執行個體,則每個容器執行個體的 ENI 限制仍為預設值。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的每個執行個體類型每個網路介面的 IP 地址

  • 如果您選擇使用 awsvpcTrunking 帳戶設定,且在選擇使用後,使用支援的執行個體類型啟動新的容器執行個體,則會有額外的 ENI 可用。如需詳細資訊,請參閱援更多 Amazon ECS 容器網路介面的執行個體

如需選擇使用的 awsvpcTrunking 帳戶設定詳細資訊,請參閱 增加 Amazon ECS Linux 容器執行個體網路介面數量

您可以將容器執行個體新增到您的叢集,以提供更多可用的網路轉接器。

容器執行個體遺漏必要的屬性

有些任務定義參數需要在容器執行個體上安裝特定的 Docker 遠端 API 版本。其他,例如記錄驅動程式選項,需要容器執行個體向 ECS_AVAILABLE_LOGGING_DRIVERS 代理組態變數註冊這些日誌驅動程式。如果您的任務定義包含一個需要特定容器執行個體屬性的參數,而您沒有任何可用的容器執行個體可滿足此需求,即無法置放任務。

此錯誤的常見原因是,如果您服務使用的是使用 awsvpc 網路模式和 EC2 的任務,且您指定的叢集在相同子網路中沒有註冊至其中的容器執行個體,而這個子網路指的是在建立服務時於 awsvpcConfiguration 指定的子網路。

您可以使用 AWSSupport-TroubleshootECSContainerInstance 執行手冊進行疑難排解。執行手冊會檢閱執行個體的使用者資料是否包含正確的叢集資訊、執行個體設定檔是否包含必要的許可,以及網路組態問題。如需詳細資訊,請參閱 AWS Systems Manager Automation runbook reference User Guide 中的 AWSSupport-TroubleshootECSContainerInstance

有關特定任務定義參數和代理組態變數需要哪些必要屬性的詳細資訊,請參閱「Fargate 的 Amazon ECS 任務定義參數」和「Amazon ECS 容器代理程式組態」。

服務 (service-name) 無法放置任務。原因:目前無法使用容量。請稍後再試一次,或在不同的可用區域中嘗試。

目前沒有可用的容量可用來執行您的服務。

您可以執行下列任一動作:

  • 等到 Fargate 容量或 EC2 容器執行個體可以使用。

  • 重新啟動服務並指定其他子網路。

服務 (service-name) 部署失敗:任務無法啟動。

服務中的任務無法啟動。

如需有關如何偵錯已停止任務的資訊,請參閱 Amazon ECS 已停止任務錯誤訊息

service (service-name) Timed out waiting for Amazon ECS Agent to start. Please check logs at /var/log/ecs/ecs-agent.log".

適合放置任務之最接近相符容器執行個體中的 Amazon ECS 容器代理中斷連線。如果可透過 SSH 連線至容器執行個體,即可檢查代理程式日誌。如需詳細資訊,請參閱Amazon ECS 容器代理程式日誌組態參數。您也應該確認代理是否在執行個體上執行。如果您使用的是 Amazon ECS 最佳化 AMI,您可以使用下列命令嘗試停用並重新啟動代理。

  • 對於 Amazon ECS 最佳化 Amazon Linux 2 AMI

    sudo systemctl restart ecs
  • 對於 Amazon ECS 最佳化 Amazon Linux AMI

    sudo stop ecs && sudo start ecs

service (service-name) task set (taskSet-ID) (task task-id) is not healthy in target-group (targetGroup-ARN)) due to TARGET GROUP IS NOT FOUND.

服務的任務集運作狀態檢查失敗,因為找不到目標群組。訊息包含任務 ID,可協助識別哪些特定任務未通過運作狀態檢查。您應刪除並重新建立服務。除非已刪除對應的 Amazon ECS 服務,否則請勿刪除任何 ELB 目標群組。

service (service-name) task set (taskSet-ID) (task task-id) is not healthy in target-group (targetGroup-ARN)) due to TARGET IS NOT FOUND.

服務的任務集運作狀態檢查失敗,因為找不到目標。訊息包含任務 ID,可協助識別哪些特定任務未通過運作狀態檢查。

IAM 許可政策設定錯誤或已變更,ECS 無法再維護您的服務

由於 IAM 許可政策設定錯誤或已變更,服務無法維護任務。與 ECS 服務或任務相關聯的 IAM 角色可能缺少必要許可。

若要解決此問題,請將必要許可新增至 IAM 角色。如需有關管理 IAM 許可政策的詳細資訊,請參閱 IAM User Guide 中的 Adding and removing IAM identity permissions

IAM 信任關係設定錯誤或已變更,ECS 無法再維護您的服務

由於 IAM 信任關係設定錯誤或已變更,服務無法維護任務。與 ECS 服務或任務相關聯的 IAM 角色的信任政策可能不正確。

若要解決此問題,請為任務定義中使用的角色設定信任政策。如需有關為自訂角色建立信任政策的詳細資訊,請參閱 IAM User Guide 中的 Creating a role for a custom use case

service (service-name) 無法啟動 deployment deployment-id數目任務。

當部署工作流程成功啟動某些任務,但由於容量不足錯誤而無法啟動所有請求的任務時,服務排程器會傳送此事件訊息。這通常發生在啟用斷路器時,並提供部署失敗或復原原因的可見性。

訊息包含特定的失敗原因,例如 CPU、記憶體不足或其他資源限制。這可協助您了解需要處理哪些資源才能解決部署問題。

如需詳細資訊,請參閱服務 (service-name) 無法放置任務,因為沒有容器執行個體符合其所有要求。

service (service-name) 無法將任務放置在叢集中,因為超過任務佈建容量限制。

當您的叢集達到可同時處於 PROVISIONING 狀態的 500 個任務限制時,服務排程器會傳送此事件訊息。這是叢集層級限制,而不是服務特定的問題。

當您啟動具有大量所需任務且預先佈建容量有限的服務時,或同時啟動多個服務時,通常會發生這種情況。

若要解決此問題:

  • 等待現有任務完成佈建並移至 RUNNING 狀態。

  • 請考慮逐步擴展您的服務,以避免達到佈建限制。

  • 檢閱叢集的容量提供者組態,以確保有足夠的資源可用。

如需 Amazon ECS 服務配額的詳細資訊,請參閱《Amazon Web Services 一般參考》中的 Amazon Elastic Container Service 端點和配額