Amazon ECS API 失敗原因 - Amazon Elastic Container Service

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

Amazon ECS API 失敗原因

當您透過 Amazon ECS API、主控台或 觸發的 API 動作 AWS CLI 結束並顯示failures錯誤訊息時,下列動作可能有助於對原因進行故障診斷。失敗會傳回原因,以及與失敗相關聯的資源的 Amazon Resource Name (ARN)。

許多資源是區域限定的,所以在使用主控台時,請務必為您的資源設定正確的區域。使用 時 AWS CLI,請確定您的 AWS CLI 命令已使用 --region region 參數傳送至正確的區域。

如需有關 Failure 資料類型結構的詳細資訊,請參閱《Amazon Elastic Container Service API 參考》中的故障

以下是您在執行 API 命令時可能收到的失敗訊息範例。

API 動作 失敗原因或停止原因 原因

DescribeClusters

MISSING

找不到指定的叢集。請確認叢集名稱的拼字。

DescribeInstances

MISSING

找不到指定的容器執行個體。確認您指定的叢集容器執行個體已註冊,且容器執行個體 ARN 或 ID 都是正確的。

DescribeServices

MISSING

找不到指定的服務。請確認已指定正確的叢集或區域,且服務 ARN 或名稱有效。

DescribeTasks

MISSING

找不到指定的任務。請確認已指定正確的叢集或區域,而且任務 ARN 或 ID 皆有效。

DescribeTasks

TaskFailedToStart: RESOURCE:*

如果 RESOURCE:CPU 發生錯誤,無法在容器執行個體上取得任務請求的 CPU 數量。這通常發生在任務定義中的 CPU 單位需求大於映射到容量提供者的 Auto Scaling 群組中定義的 Amazon EC2 執行個體的 CPU 大小時。您需要檢查容量提供者組態。

如果 RESOURCE:MEMORY 發生錯誤,無法在容器執行個體上取得任務請求的記憶體數量。這通常發生在任務定義中的記憶體數量需求大於映射到容量提供者的 Auto Scaling 群組中定義的 Amazon EC2 執行個體上支援的記憶體時。您需要檢查容量提供者組態。

TaskFailedToStart: AGENT

您嘗試啟動任務所在之容器執行個體上的代理程式目前中斷連線。為避免延長任務置放等待時間,請求遭到拒絕。

如需如何對已中斷連線的代理程式進行故障診斷的相關資訊,請參閱 How do I troubleshoot a disconnected Amazon ECS agent (如何對已中斷連線的 Amazon ECS 代理程式進行故障診斷)。

TaskFailedToStart: MemberOf placement constraint unsatisfied

沒有容器執行個體符合任務定義中定義的置放限制條件。

TaskFailedToStart: ATTRIBUTE

您的任務定義包含需要特定容器執行個體屬性的參數,但您的容器執行個體不提供此屬性。例如,如果您的任務使用 awsvpc 網路模式,但您使用 ecs.capability.task-eni 屬性指定的子網路中沒有任何執行個體。如需特定任務定義參數和代理組態變數需要哪些必要屬性的詳細資訊,請參閱「Fargate 啟動類型的 Amazon ECS 任務定義參數」和「Amazon ECS 容器代理程式組態」。

TaskFailedToStart: NO ACTIVE INSTANCES 容量提供者中沒有作用中的執行個體。如需有關如何管理 Auto Scaling 群組的相關資訊,請參閱《Amazon EC2 Auto Scaling 使用者指南》中的 Auto Scaling 群組

TaskFailedToStart: EMPTY CAPACITY PROVIDER

您的叢集中沒有執行個體。這很可能是因為空白容量提供者,或因為容量提供者中的執行個體未註冊至叢集。如需有關如何管理 Auto Scaling 群組的相關資訊,請參閱《Amazon EC2 Auto Scaling 使用者指南》中的 Auto Scaling 群組

GetTaskProtection

MISSING

找不到指定的任務。確認叢集名稱或 ARN 以及任務 ARN 或 ID 是否有效。

TASK_NOT_VALID

指定的任務不屬於 Amazon ECS 服務。只有 Amazon ECS 服務受管任務才能受到保護。請確認任務 ARN 或 ID,然後再試一次。

RunTaskStartTask

RESOURCE:*

無法在叢集的容器執行個體上取得任務請求的一或多項資源。如果資源是 CPU、記憶體、連接埠或彈性網路介面,您可能需要新增其他容器執行個體到您的叢集。

若為 RESOURCE:ENI 錯誤,您的叢集不會有任何可用的彈性網路介面連接點,但這對使用 awsvpc 網路模式的任務是必要的。Amazon EC2 執行個體有可以連接到它們的網路界面數量限制,主要網路界面包含在內。如需每個執行個體類型支援多少網路介面的詳細資訊,請參閱《Amazon EC2 使用者指南》中的每個執行個體類型的每個網路介面 IP 地址

對於 RESOURCE:GPU 錯誤,任務請求的 GPU 數目不可用,而且您可能需要將啟用 GPU 的容器執行個體新增至叢集。如需詳細資訊,請參閱GPU 工作負載的 Amazon ECS 任務定義

AGENT

您嘗試啟動任務所在之容器執行個體上的代理程式目前中斷連線。為避免延長任務置放等待時間,請求遭到拒絕。

如需如何對已中斷連線的代理程式進行故障診斷的相關資訊,請參閱 How do I troubleshoot a disconnected Amazon ECS agent (如何對已中斷連線的 Amazon ECS 代理程式進行故障診斷)。

LOCATION

您嘗試啟動任務的容器執行個體,位於與您在 awsVpcConfiguration 中指定的子網路不同的可用區域。

ATTRIBUTE

您的任務定義包含需要特定容器執行個體屬性的參數,但您的容器執行個體不提供此屬性。例如,如果您的任務使用 awsvpc 網路模式,但您使用 ecs.capability.task-eni 屬性指定的子網路中沒有任何執行個體。如需特定任務定義參數和代理組態變數需要哪些必要屬性的詳細資訊,請參閱「Fargate 啟動類型的 Amazon ECS 任務定義參數」和「Amazon ECS 容器代理程式組態」。

StartTask

MISSING

找不到您嘗試啟動任務的容器執行個體。檢查是否已指定錯誤的叢集或區域,或容器執行個體 ARN 或 ID 是否拼寫錯誤。

INACTIVE

您嘗試啟動任務所在之容器執行個體,之前已向 Amazon ECS 取消註冊,無法使用。

StopServiceDeployment

ECS deployment failed

詐騙帳戶執行 StopServiceDeployment API。

TagResource

InvalidParameterException

您要標記之服務的 ARN 格式較短。您必須遷移至長格式。如需如何遷移 ARN 的資訊,請參閱 將 Amazon ECS 短期服務 ARN 遷移至長 ARN

UpdateTaskProtection

DEPLOYMENT_BLOCKED

無法設定任務保護,因為一或多個受保護的任務阻止服務部署達到穩定狀態。取消現有任務的任務保護設定,或等到任務保護到期。

MISSING

找不到指定的任務。確認叢集名稱或 ARN 以及任務 ARN 或 ID 是否有效。

TASK_NOT_VALID

指定的任務不屬於 Amazon ECS 服務。只有 Amazon ECS 服務受管任務才能受到保護。請確認任務 ARN 或 ID,然後再試一次。

注意

除了此處所述的失敗案例之外,API 操作也可能因為例外狀況而失敗,導致錯誤回應。如需此類例外狀況的清單,請參閱常見錯誤