如何解決 Amazon ECS 中的錯誤「呼叫 ExecuteCommand 操作時出現錯誤 (TargetNotConnectedException)」?

上次更新日期︰2022 年 3 月 18 日

我嘗試在 Amazon Elastic Container Service (Amazon ECS) 中執行 AWS Command Line Interface (AWS CLI) 命令 execute-command 時,出現以下錯誤:

「呼叫 ExecuteCommand 操作時發生錯誤 (TargetNotConnectedException):由於內部錯誤,執行命令失敗。請稍後重試」

簡短描述

由於以下原因,可能會出現以下錯誤:

  • Amazon ECS 任務角色沒有執行執行 execute-command 命令的必要許可。
  • 執行該命令的 AWS Identity and Access Management (IAM) 角色或使用者沒有必要的許可。

注意:如果您在執行 AWS CLI 命令時收到錯誤,請確保您使用的是最新版 AWS CLI

解決方案

檢查 Amazon ECS 任務角色許可

Amazon ECS 任務角色沒有必要的許可時,您會收到此錯誤。您可以建立包含必要許可的 IAM 政策,然後將政策連接至 Amazon ECS 任務角色來解決此錯誤。

1.    建立以下 IAM 政策

{
   "Version": "2012-10-17",
   "Statement": [
       {
       "Effect": "Allow",
       "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
       ],
      "Resource": "*"
      }
   ]
}

注意:請確保 AWS Organizations 層級不會拒絕這些許可。

2.    將政策連接至 Amazon ECS 任務角色

在任務層級傳播這些變更可能會有延遲。因此,在將政策連接至任務角色後,請等待一段時間,然後嘗試執行 execute-command 命令。

檢查 IAM 使用者或角色許可

請確保執行 execute-command 命令的 IAM 使用者或角色具有以下許可:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ecs:ExecuteCommand",
            "Resource": "arn:aws:ecs:example-region:example-arn:cluster/example-cluster/*"
        }
    ]
}

如果您仍收到錯誤,請執行 amazon-ecs-exec-checker 指令碼。此指令碼可讓您檢查和驗證 AWS CLI 環境,以及 Amazon ECS 叢集或任務。該指令碼還會通知您未滿足的先決條件


此文章是否有幫助?


您是否需要帳單或技術支援?