Wie behebe ich den Fehler „Beim Aufruf des ExecuteCommand-Vorgangs ist ein Fehler aufgetreten (TargetNotConnectedException)“ in Amazon ECS?

Lesedauer: 2 Minute
0

Wenn ich versuche, den AWS-Command-Line-Interface-Befehl (AWS CLI) execute-command in Amazon Elastic Container Service (Amazon ECS) auszuführen, erhalte ich die folgende Fehlermeldung: „Beim Aufruf des ExecuteCommand-Vorgangs ist ein Fehler aufgetreten (TargetNotConnectedException): Der Execute-Befehl ist aufgrund eines internen Fehlers fehlgeschlagen. Versuchen Sie es später noch einmal“

Kurzbeschreibung

Sie könnten diesen Fehler aus den folgenden Gründen erhalten:

  • Die Amazon ECS-Aufgabenrolle verfügt nicht über die erforderlichen Berechtigungen zum Ausführen des Befehls execute-command.
  • Die AWS-Identity-and-Access-Management-Rolle (IAM) oder der Benutzer, der den Befehl ausführt, verfügt nicht über die erforderlichen Berechtigungen.

Hinweis: Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS CLI verwenden.

Auflösung

Überprüfen Sie die Berechtigungen der Amazon-ECS-Aufgabenrolle

Sie erhalten diesen Fehler, wenn die Amazon-ECS-Aufgabenrolle nicht über die erforderlichen Berechtigungen verfügt. Sie können diesen Fehler beheben, indem Sie eine IAM-Richtlinie mit den erforderlichen Berechtigungen erstellen und die Richtlinie dann an die Amazon-ECS-Aufgabenrolle anhängen.

1.    Erstellen Sie die folgende IAM-Richtlinie:

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

Hinweis: Stellen Sie sicher, dass diese Berechtigungen nicht auf der Ebene von AWS Organizations verweigert werden.

2.    Hängen Sie die Richtlinie an die Amazon-ECS-Aufgabenrolle an.

Es kann zu Verzögerungen bei der Weitergabe dieser Änderungen auf Aufgabenebene kommen. Warten Sie daher einige Zeit, nachdem Sie die Richtlinie an die Aufgabenrolle angehängt haben, und versuchen Sie dann, den Befehl execute-command auszuführen.

Überprüfen Sie die IAM-Benutzer- oder Rollenberechtigungen

Stellen Sie sicher, dass der IAM-Benutzer oder die IAM-Rolle, die den Befehl execute-command ausführt, über die folgenden Berechtigungen verfügt:

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

Wenn Sie den Fehler immer noch erhalten, führen Sie das Amazon-ecs-exec-checker-Skript aus. Mit diesem Skript können Sie Ihre AWS-CLI-Umgebung und den Amazon-ECS-Cluster oder die Aufgabe überprüfen und validieren. Das Script informiert Sie auch über die Voraussetzung, die nicht erfüllt ist.


Zugehörige Informationen

ECS Exec aktivieren und verwenden

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren