Durch die Nutzung von AWS re:Post stimmt du den AWS re:Post Nutzungsbedingungen

Wie behebe ich, Probleme, wenn Amazon-ECS-Aufgaben angehalten werden oder nicht gestartet werden, während mein Container beendet wird?

Lesedauer: 4 Minute
0

Ich möchte Probleme mit einer fehlgeschlagenen Amazon Elastic Container Service (Amazon ECS)-Aufgabe in einem ECS-Cluster beheben.

Kurzbeschreibung

Deine Container können aufgrund von Image-Problemen, Anwendungsproblemen, Ressourcenbeschränkungen oder anderen Problemen beendet werden.

Informationen zum Fehlschlagen einer Aufgabe aufgrund von Image-Problemen findest du unter Wie behebe ich den Fehler „Image does not exist“, wenn meine Aufgaben in meinem Amazon ECS-Cluster nicht gestartet werden können?

Informationen zu AWS Fargate-Aufgaben, die unerwartet angehalten werden, findest du unter Amazon ECS-Fehlermeldungen zu angehaltenen Aufgaben.

Um andere Probleme zu analysieren, die dazu führen, dass eine ECS-Aufgabe nicht gestartet wird, kannst du das AWS Systems Manager Automation-Runbook AWSSupport-TroubleshootECSTaskFailedToStart verwenden. 

Du kannst auch manuell Fehler in deinem Amazon ECS-Cluster beheben.

Lösung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (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.

Das Runbook ausführen, um Probleme mit dem Cluster zu beheben

Bevor du das AWSSupport-TroubleshootECSTaskFailedToStart-Runbook startest, stelle sicher, dass dein IAM-Benutzer oder deine IAM-Rolle über die erforderlichen Berechtigungen verfügt. Weitere Informationen findest du im Abschnitt Required IAM permissions (Erforderliche IAM-Berechtigungen) von AWSSupport-TroubleshootECSTaskFailedToStart.

Gehe wie folgt vor, um das Runbook zu starten:

  1. Öffne das Dokument AWS Support-TroubleshootECSTaskFailedToStart auf der AWS Systems Manager-Konsole.
  2. Wähle Automatisierung ausführen.
  3. Gib die folgenden Werte für die Eingabeparameter ein:
    (Optional) AutomationAssumeRole: Der ARN der IAM-Rolle, mit der Automation Aktionen für dich ausführen kann. Wenn du keine IAM-Rolle angibst, verwendet die Automatisierung die Berechtigungen des Benutzers, die das Runbook startet.
    ClusterName: Der Name des ECS-Clusters, auf dem die Aufgabe nicht gestartet werden konnte.
    (Optional) CloudwatchRetentionPeriod: Der Aufbewahrungszeitraum in Tagen für die Speicherung der AWS Lambda-Funktionsprotokolle in Amazon CloudWatch Logs.
    Hinweis: Definiere diesen Wert, wenn die Analyse feststellt, dass du die Netzwerkkonnektivität testen musst. Der Standardwert beträgt 30 Tage. Andere gültige Werte sind 1, 3, 5, 7, 14, 60 und 90.
    TaskId: Die ID der zuletzt fehlgeschlagenen Aufgabe.
  4. Wähle Ausführen.
    Hinweis: Weitere Informationen zu den Schritten des Runbooks findest du im Abschnitt Dokumentschritte von AWSSupport-TroubleshootECSTaskFailedToStart.
  5. Überprüfe die detaillierten Ergebnisse im Abschnitt Ausgaben. Die Ausgabe enthält die folgenden Informationen:
    TaskFailureReason: Eine Analyse des Grundes für das Scheitern der letzten Aufgabe.
    ExecutionLogs: Die Ausgabeprotokolle jedes Schritts, den das Runbook ausgeführt hat.
    ENI_Deletion_Message.Status: Der Status der Löschung der Elastic-Network-Schnittstelle Lambda Virtual Private Cloud (VPC), wenn das Runbook eine Lambda-Funktion zum Testen der Netzwerkkonnektivität erstellt.
    Hinweis: Wenn ENI_Deletion_Message zeigt, dass die Netzwerkschnittstelle nicht gelöscht wurde, lösche die Netzwerkschnittstelle manuell.

Manuelles Beheben von Fehlern in deinem ECS-Cluster

Suche im Serviceereignisprotokoll nach Diagnoseinformationen. Verwende außerdem die Amazon ECS-Konsole oder die AWS CLI, um angehaltene Aufgaben auf Fehler zu überprüfen.

Informationen zur Behebung von Problemen mit Speicherbeschränkungen findest du unter Wie kann ich den Aufgaben in Amazon ECS Speicher zuweisen?

Wenn du bereits einen Protokolltreiber konfiguriert hast, überprüfe deine Anwendungsprotokolle auf Anwendungsprobleme. Wenn du beispielsweise den Protokolltreiber awslogs in der Aufgabendefinition konfiguriert hast, zeige die awslogs-Container-Protokolle in Amazon CloudWatch an. Verwende andernfalls die Protokollkonfigurationsoptionen in der Aufgabendefinition, um Protokolle an einen benutzerdefinierten Protokolltreiber für den Container zu senden.

Für andere ECS-Aufgaben als Fargate

Wenn du den standardmäßigen JSON-Dateiprotokolltreiber mit dem Starttyp Amazon Elastic Compute Cloud (Amazon EC2) verwendest, führe den folgenden Befehl docker logs aus:

docker logs dc7240fe892a

Hinweis: Ersetze dc7240fe892a durch deine Container-ID.

Der vorhergehende Befehl überprüft die Docker-Protokolle des Containers auf der ECS-Container-Instance. Weitere Informationen zum JSON-Protokolltreiber findest du unter JSON File logging driver (JSON-Dateiprotokollierungstreiber) auf der Docker-Website.

Fargate-Aufgaben

Der awslogs-Protokolltreiber leitet diese Protokolle von Docker an Amazon CloudWatch Logs weiter. Die Protokolle zeigen die STDOUT- und STDERR I/O-Streams aus den Befehlsausgängen.

Ähnliche Informationen

Workflows zur Automatisierung von AWS Support (SAW)

Einrichten der Automatisierung

Ausführung einer automatisierten Operation, die von Systems Manager Automation unterstützt wird

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Monat