

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

# Amazon ECS API 失敗原因
<a name="api_failures_messages"></a>

當您透過 Amazon ECS API、主控台或 AWS CLI 觸發的 API 動作退出時顯示 `failures` 錯誤訊息，以下內容可能有助於對原因進行疑難排解。失敗時會傳回原因，以及與失敗相關聯的資源的 Amazon Resource Name (ARN)。

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

如需有關 `Failure` 資料類型結構的詳細資訊，請參閱《Amazon Elastic Container Service API 參考》**中的[故障](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Failure.html)。

以下是執行 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 大小時，通常會發生這種情況。您需要檢查容量提供者組態。<br />如果 `RESOURCE:MEMORY` 發生錯誤，無法在容器執行個體上取得任務請求的記憶體數量。當任務定義中的記憶體數量需求大於映射至容量提供者的 Auto Scaling 群組中定義之 Amazon EC2 執行個體上支援的記憶體數量時，通常會發生這種情況。您需要檢查容量提供者組態。
  - **失敗原因或停止原因:** `TaskFailedToStart: AGENT` / **原因:** 您嘗試啟動任務所在之容器執行個體上的代理程式目前中斷連線。為避免延長任務置放等待時間，請求遭到拒絕。<br />如需如何對已中斷連線的代理程式進行故障診斷的相關資訊，請參閱 [How do I troubleshoot a disconnected Amazon ECS agent](https://repost.aws/knowledge-center/ecs-agent-disconnected-linux2-ami) (如何對已中斷連線的 Amazon ECS 代理程式進行故障診斷)。
  - **失敗原因或停止原因:** `TaskFailedToStart: MemberOf placement constraint unsatisfied` / **原因:** 沒有符合任務定義中定義之置放限制的容器執行個體。
  - **失敗原因或停止原因:** `TaskFailedToStart: ATTRIBUTE` / **原因:** 您的任務定義包含需要特定容器執行個體屬性的參數，但您的容器執行個體不提供此屬性。例如，如果您的任務使用 `awsvpc` 網路模式，但您使用 `ecs.capability.task-eni` 屬性指定的子網路中沒有任何執行個體。如需特定任務定義參數和代理組態變數需要哪些必要屬性的詳細資訊，請參閱「[Fargate 的 Amazon ECS 任務定義參數](task_definition_parameters.md)」和「[Amazon ECS 容器代理程式組態](ecs-agent-config.md)」。
  - **失敗原因或停止原因:** TaskFailedToStart: NO ACTIVE INSTANCES / **原因:** 容量提供者中沒有作用中的執行個體。如需有關如何管理 Auto Scaling 群組的相關資訊，請參閱《Amazon EC2 Auto Scaling 使用者指南》中的 [Auto Scaling 群組](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html)。
  - **失敗原因或停止原因:** `TaskFailedToStart: EMPTY CAPACITY PROVIDER` / **原因:** 您的叢集中沒有執行個體。這很可能是因為空白容量提供者，或因為容量提供者中的執行個體未註冊至叢集。如需有關如何管理 Auto Scaling 群組的相關資訊，請參閱《Amazon EC2 Auto Scaling 使用者指南》中的 [Auto Scaling 群組](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html)。

- ** `GetTaskProtection` **
  - **失敗原因或停止原因:** `MISSING` / **原因:** 找不到指定的任務。確認叢集名稱或 ARN 以及任務 ARN 或 ID 是否有效。
  - **失敗原因或停止原因:** `TASK_NOT_VALID` / **原因:** 指定的服務不是 Amazon ECS 服務的一部分。只有 Amazon ECS 服務受管任務才能受到保護。請確認任務 ARN 或 ID，然後再試一次。

- ** `RunTask` 或 `StartTask` **
  - **失敗原因或停止原因:** `RESOURCE:*` / **原因:** 無法在叢集的容器執行個體上取得任務請求的一或多項資源。如果資源是 CPU、記憶體、連接埠或彈性網路介面，您可能需要新增其他容器執行個體到您的叢集。<br />若為 `RESOURCE:ENI` 錯誤，您的叢集不會有任何可用的彈性網路介面連接點，但這對使用 `awsvpc` 網路模式的任務是必要的。Amazon EC2 執行個體有可以連接到它們的網路界面數量限制，主要網路界面包含在內。如需有關每個執行個體類型支援多少網路介面的詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [IP Addresses Per Network Interface Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI)。<br />對於 `RESOURCE:GPU` 錯誤，任務請求的 GPU 數目不可用，而且您可能需要將啟用 GPU 的容器執行個體新增至叢集。如需詳細資訊，請參閱[GPU 工作負載的 Amazon ECS 任務定義](ecs-gpu.md)。
  - **失敗原因或停止原因:** `AGENT` / **原因:** 您嘗試啟動任務所在之容器執行個體上的代理程式目前中斷連線。為避免延長任務置放等待時間，請求遭到拒絕。<br />如需如何對已中斷連線的代理程式進行故障診斷的相關資訊，請參閱 [How do I troubleshoot a disconnected Amazon ECS agent](https://repost.aws/knowledge-center/ecs-agent-disconnected-linux2-ami) (如何對已中斷連線的 Amazon ECS 代理程式進行故障診斷)。
  - **失敗原因或停止原因:** `LOCATION` / **原因:** 您嘗試啟動任務的容器執行個體，位於與您在 `awsVpcConfiguration` 中指定的子網路不同的可用區域。
  - **失敗原因或停止原因:** `ATTRIBUTE` / **原因:** 您的任務定義包含需要特定容器執行個體屬性的參數，但您的容器執行個體不提供此屬性。例如，如果您的任務使用 `awsvpc` 網路模式，但您使用 `ecs.capability.task-eni` 屬性指定的子網路中沒有任何執行個體。如需特定任務定義參數和代理組態變數需要哪些必要屬性的詳細資訊，請參閱「[Fargate 的 Amazon ECS 任務定義參數](task_definition_parameters.md)」和「[Amazon ECS 容器代理程式組態](ecs-agent-config.md)」。

- ** `StartTask` **
  - **失敗原因或停止原因:** `MISSING` / **原因:** 找不到您嘗試啟動任務所在之容器執行個體。檢查是否指定了錯誤的叢集或區域，或拼錯了容器執行個體 ARN 或 ID。
  - **失敗原因或停止原因:** `INACTIVE` / **原因:** 您嘗試啟動任務所在之容器執行個體，之前已向 Amazon ECS 取消註冊，無法使用。

- ** `StopServiceDeployment` **
  - **失敗原因或停止原因:** `ECS deployment failed`
  - **原因:** 詐騙帳戶執行了 StopServiceDeployment API。

- ** `TagResource` **
  - **失敗原因或停止原因:** `InvalidParameterException`
  - **原因:** 您要標記之服務的 ARN 採用短格式。您必須遷移至長格式。如需有關如何遷移的資訊，請參閱[將 Amazon ECS 短服務 ARN 移轉到完整 ARN](service-arn-migration.md)。

- ** `UpdateTaskProtection` **
  - **失敗原因或停止原因:** `DEPLOYMENT_BLOCKED` / **原因:** 無法設定任務保護，因為一或多個受保護的任務會阻止服務部署達到穩定狀態。取消現有任務的任務保護設定，或等到任務保護到期。
  - **失敗原因或停止原因:** `MISSING` / **原因:** 找不到指定的任務。確認叢集名稱或 ARN 以及任務 ARN 或 ID 是否有效。
  - **失敗原因或停止原因:** `TASK_NOT_VALID` / **原因:** 指定的服務不是 Amazon ECS 服務的一部分。只有 Amazon ECS 服務受管任務才能受到保護。請確認任務 ARN 或 ID，然後再試一次。



**注意**  
除了此處描述的失敗案例，API 操作也可能因例外狀況而失敗，從而導致錯誤回應。如需此類例外狀況的清單，請參閱[常見錯誤](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/CommonErrors.html)。