Wie behebe ich den Fehler „An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation“ in Amazon ECS?
Ich habe versucht, den AWS Command Line Interface (AWS CLI)-Befehl „execute-command“ in Amazon Elastic Container Service (Amazon ECS) auszuführen. Ich erhalte jedoch die Fehlermeldung „An error occurred (TargetNotConnectedException) when calling the ExecuteCommand operation: The execute command failed due to an internal error. Try again later“.
Kurzbeschreibung
Du erhältst die Fehlermeldung „ExecuteCommand“ aus den folgenden Gründen:
- Die Amazon ECS-Aufgabenrolle verfügt nicht über die erforderlichen Berechtigungen, um execute-command auszuführen.
- Die Rolle oder der Benutzer von AWS Identity and Access Management (IAM), der den Befehl ausführt, verfügt nicht über die erforderlichen Berechtigungen.
Lösung
Hinweis: Wenn du beim Ausführen von AWS CLI-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Amazon ECS-Aufgabenrollenberechtigungen aktualisieren
Führe die folgenden Schritte aus:
- Erstelle die folgende IAM-Richtlinie:
Hinweis: Stelle sicher, dass die Konfiguration die vorherigen Berechtigungen auf der Ebene von AWS Organizations nicht blockiert.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" } ] } - Hänge die Richtlinie an die Amazon ECS-Aufgabenrolle an.
Es kann zu Verzögerungen kommen, wenn du die Aufgabenrollenberechtigungen aktualisierst. Warte für einige Minuten, nachdem du die Richtlinie an die Aufgabenrolle angehängt hast und führe dann den Befehl execute-command aus.
Die IAM-Benutzer- oder Rollenberechtigungen überprüfen
Führe den folgenden Befehl aus, um die IAM-Benutzer-ID und die Rolle zu überprüfen, mit der du angemeldet bist:
aws sts get-caller-identity
Der IAM-Benutzer oder die IAM-Rolle, die den Befehl execute-command ausführt, muss über die folgenden Berechtigungen verfügen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ecs:ExecuteCommand", "Resource": "arn:aws:ecs:example-region:example-arn:cluster/example-cluster/*" } ] }
Hänge eine neue Richtlinie an oder aktualisiere die bestehende Richtlinie für den Benutzer oder die Rolle, um die vorherigen Berechtigungen einzubeziehen.
Prüfen, ob du in der Aufgabendefinition pidMode auf „Aufgabe“ gesetzt hast
Du kannst nur eine ECS Exec-Sitzung für jeden Prozess-ID (PID)-Namespace haben. Wenn du einen PID-Namespace in einer Aufgabe gemeinsam nutzen, kannst du ECS Exec-Sitzungen in nur einem Container starten.
Prüfen, ob du readonlyRootFilesystem in der Aufgabendefinition auf „wahr“ gesetzt hast
Um die erforderlichen Verzeichnisse und Dateien zu erstellen, benötigt der SSM-Agent ein beschreibbares Container-Dateisystem. Du kannst den Aufgabendefinitionsparameter readonlyRootFilesystem oder eine andere Methode nicht verwenden, um das Root-Dateisystem schreibgeschützt zu machen.
Wenn der Fehler nach dem Aktualisieren der Aufgabendefinition immer noch auftritt, führe amazon-ecs-exec-checker von der GitHub-Website aus. Das amazon-ecs-exec-checker-Skript validiert die AWS-CLI-Umgebung und den Amazon ECS-Cluster oder die Amazon ECS-Aufgabe. Das Skript benachrichtigt dich auch, wenn du eine Voraussetzung nicht erfüllst.
Ähnliche Informationen
- Themen
- Containers
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor 10 Monaten