Direkt zum Inhalt

Warum wurde meine Amazon ECS-Aufgabe angehalten?

Lesedauer: 7 Minute
0

Ich möchte eine Fehlerbehebung für meine Amazon Elastic Container Service (Amazon ECS)-Aufgabe durchführen, die angehalten wurde.

Lösung

Fehlerbehebung bei einer gestoppten Aufgabe

Verwende den DescribeTasks-API-Aufruf, um die Details einer gestoppten Aufgabe anzuzeigen. Führe dann die Fehlerbehebung für deine Aufgabe basierend auf dem Grund für das Stoppen und dem Exit-Code in den Aufgabendetails durch.

Die Details für die angehaltene Aufgabe werden nur für 1 Stunde in den API-Ergebnissen angezeigt. Verwende die Vorlage amazon-ecs-stopped-tasks-cwlogs auf der GitHub-Website, um mehr Zeit zum Anzeigen der Details der angehaltenen Aufgaben zu bekommen.

Der essenzielle Container in der Aufgabe wurde beendet

Wenn der essenzielle Container beendet wurde, verwende einen der folgenden Beendencodes, um das Problem zu beheben:

  • Der Exit-Code 0 tritt auf, wenn der „entry point“-, „success“- oder CMD-Befehl abgeschlossen ist und Amazon ECS den Container stoppt.
  • Der Beendencode 1 erscheint, wenn ein Anwendungsfehler vorliegt. Überprüfe die Anwendungsprotokolle, um Probleme mit diesem Beendencode zu beheben.
  • Der Exit-Code 137 tritt auf, wenn du nicht innerhalb von 30 Sekunden auf ein SIGTERM reagierst und Amazon ECS den Container mit SIGKILL stoppt. Um den Standardzeitraum von 30 Sekunden zu ändern, aktualisiere den Amazon ECS-Container-Agenten mit dem Parameter ECS_CONTAINER_STOP_TIMEOUT.
    Hinweis: Dieser Exit-Code tritt auch aufgrund von Out-of-Memory-Fehlern auf. Um die Ressourcennutzung zu überprüfen, überprüfe deine Amazon CloudWatch-Metriken für Amazon ECS.
  • Der Exit-Code 139 tritt auf, wenn die Anwendung versucht hat, auf einen Speicherbereich zuzugreifen, der nicht verfügbar ist. Dieser Beendencode erscheint auch, wenn ein nicht gesetzter Platzhalter oder ein ungültiger Umgebungsplatzhalter einen Segmentierungsfehler verursacht. Um dieses Problem zu beheben, überprüfe die CloudWatch-Protokolle für deine Amazon ECS-Aufgaben.
  • Der Exit-Code 143 tritt auf, wenn der Container eine Warnung zum ordnungsgemäßen Herunterfahren erhält und Amazon ECS den Container stoppt.
  • Der Beendencode 255 erscheint, wenn der Befehl ENTRYPOINT CMD in deinem Container aufgrund eines Fehlers fehlschlägt. Überprüfe die CloudWatch-Protokolle, um dich zu vergewissern, dass der Container aufgrund eines Fehlers ausfällt.

Weitere Schritte zur Fehlerbehebung findest du unter Wie behebe ich das Problem, dass Amazon-ECS-Aufgaben angehalten werden oder nicht gestartet werden konnte, während mein Container beendet wird?

CannotPullContainerError

Dieser Fehler tritt auf, wenn die Aufgabe nicht gestartet werden konnte, weil Amazon ECS das angegebene Container-Image nicht abrufen kann.

Informationen zur Behebung dieses Problems für eine Aufgabe vom Starttyp in der Amazon Elastic Compute Cloud (Amazon EC2) findest du unter Wie behebe ich die Fehler „CannotPullContainerError“, wenn ich eine EC2-Aufgabe in Amazon ECS starte?

Informationen zur Behebung dieses Problems für eine Amazon ECS-Aufgabe, die den AWS Fargate-Starttyp verwendet, findest du unter Wie behebe ich den Fehler „cannotpullcontainererror“ für meine Amazon ECS-Aufgaben auf Fargate?

Die Aufgabe hat die Elastic Load Balancer-Zustandsprüfungen nicht bestanden

Informationen zur Behebung dieses Problems für Aufgaben, die den EC2-Starttyp verwenden, findest du unter Wie kann ich dafür sorgen, dass meine Amazon ECS-Aufgaben, die den Amazon EC2-Starttyp verwenden, die Application Load Balancer-Zustandsprüfung bestehen?

Informationen zur Behebung dieses Problems für Aufgaben, die den Fargate-Starttyp verwenden, findest du unter Wie behebe ich Fehler bei Zustandsprüfungen für Amazon ECS-Aufgaben auf Fargate?

Fehlgeschlagene Container-Zustandsprüfungen

Du definierst Zustandsprüfungen in der HealthCheck-API oder im Dockerfile. Weitere Informationen findest du unter HEALTHCHECK (Zustandsprüfung) auf der Docker-Website.

Informationen zur Behebung von Fehlern bei der Container-Zustandsprüfung findest du unter Wie behebe ich Fehler bei der Container-Zustandsprüfung für Amazon ECS-Aufgaben?

Port ist fehlerhaft

Fehler, die „Instance i-## port # is unhealthy“ enthalten, treten auf, wenn eine fehlerhafte Amazon EC2-Instance nicht auf Zustandsprüfungen am angegebenen Port reagiert.

Gehe wie folgt vor, um diesen Fehler zu beheben:

  • Stelle sicher, dass die Sicherheitsgruppe, die an die Container-Instance angefügt ist, den erforderlichen Datenverkehr zulässt.
  • Führe den folgenden Befehl aus, um dich zu vergewissern, dass das Backend unverzüglich reagiert:
    ` curl -iv localhost:container-port/path`
    Hinweis: Ersetze container-port durch deinen Container-Port und path durch den Pfad zur Zustandsprüfung.
  • Erhöhe den Wert des Antwort-Timeouts vom Standardwert von 30 Sekunden. Aktualisiere den Amazon ECS-Container-Agenten mit dem Parameter ECS_CONTAINER_STOP_TIMEOUT.

Weitere Informationen zu dieser Fehlermeldung findest du unter Zugriffsprotokolle für den Network Load Balancer.

Amazon ECS führt Wartungsarbeiten auf der zugrunde liegenden Infrastruktur durch, auf der die Aufgabe ausgeführt wird

Dieser Fehler tritt auf, wenn Amazon ECS Wartungsarbeiten an den Fargate-Servern durchführt, auf denen deine Anwendungs-Container ausgeführt werden. Daher ist der Amazon ECS-Service vorübergehend nicht verfügbar.

Weitere Informationen findest du unter Außerbetriebnahme und Wartung von Aufgaben für AWS Fargate auf Amazon ECS.

Informationen zu eigenständigen Aufgaben findest du unter Wie ergreife ich Maßnahmen in Bezug auf eine Mitteilung zur Außerbetriebnahme einer Amazon ECS-Aufgabe für eine Aufgabe, die auf Fargate ausgeführt wird?

Amazon ECS-Service-Skalierungsereignis aktiviert

Während eines Amazon ECS-Service-Skalierungsereignisses werden Aufgaben angehalten, da die Skalierungsrichtlinie die Anzahl der Aufgaben reduziert, die im Service ausgeführt werden. Dann hält Amazon ECS die Aufgaben an, um die neu angegebene Anzahl zu erreichen. Diese Aktion tritt typischerweise auf, wenn die Nachfrage sinkt und Amazon ECS weniger Aufgaben benötigt, um die Workload zu verarbeiten.

Gehe wie folgt vor, um dieses Problem zu beheben:

  • Erstelle CloudWatch-Alarme für Änderungen am Service oder den Aufgaben.
  • Prüfe geplante Bereitstellungen, die sich auf die Aufgaben auswirken könnten.

Verwende Amazon ECS Task Scale-in Protection, um die Aufgaben vor der Beendigung von abskalierenden Ereignissen aufgrund von Auto Scaling oder Bereitstellungen zu schützen.

Weitere Informationen findest du unter Wie kann ich geplante Skalierungsaktionen für Amazon ECS-Services anzeigen und verwalten?

Aufgabe, die von einem Benutzer gestoppt wurde

Um den Benutzer zu ermitteln, der einen StopTask-API-Aufruf initiiert hat, überprüfe StopTask in AWS CloudTrail auf userIdentity-Informationen.

ResourceInitializationError

Verschiedene ResourceInitialization-Fehlermeldungen und Lösungsschritte findest du unter Problembehandlung bei Amazon ECS ResourceInitializatioError-Fehlern.

Informationen zur Behebung des Fehlers „ResourceInitializationError: unable to pull secrets or registry auth“ findest du unter Wie behebe ich einen „ResourceInitializationError“, wenn ich versuche, Secrets oder die Amazon ECR-Authentifizierung für ECS-Aufgaben abzurufen?

Informationen zur Behebung des Fehlers „ResourceInitializationError: failed to validate logger args“ findest du unter Wie behebe ich den Fehler „ResourceInitializationError: failed to validate logger args“ in Amazon ECS?

SpotInterruptionError

Weitere Informationen zu SpotInterruptionError findest du unter Problembehandlung bei Amazon ECS SpotInterruption-Fehlern.

Informationen zur Behebung dieses Fehlers findest du unter Wie gehe ich mit Spot-Beendigungsbenachrichtigungen in AWS Fargate Spot-Aufgaben um?

OutOfMemoryError

Dieser Fehler tritt auf, wenn ein Container stoppt, weil Prozesse im Container mehr Speicher verwenden als in der Aufgabendefinition zulässig ist.

Informationen zur Behebung dieses Fehlers findest du unter Wie behebe ich OutOfMemory-Fehler in Amazon ECS?

Fehlerbehebung für Fehlermeldungen, die auftreten, wenn deine Aufgabe gestoppt wird

Wenn du beim Anhalten einer Aufgabe eine Fehlermeldung erhältst, ergreife je nach Fehler die folgenden Maßnahmen zur Problembehandlung.

No Container Instances were found in your cluster

Um dieses Problem zu beheben, starte eine Container-Instance.

Um die Instances für deinen Cluster zu überprüfen, führe die folgenden Schritte aus:

  1. Öffne die Amazon-ECS-Konsole.
  2. Wähle im Navigationsbereich die Option Cluster aus.
  3. Wähle deinen Cluster aus.
  4. Wähle die Registerkarte Infrastruktur aus.
  5. Überprüfe den Bereich Container-Instances.

Wenn es keine Container-Instances gibt, findest du weitere Informationen unter Warum kann meine Amazon EC2-Instance dem Amazon ECS-Cluster nicht beitreten?

InvalidParameterException

Um diese Fehlermeldung zu beheben, überprüfe, ob die Parameter in deiner TaskDefinition vorhanden sind und die richtigen Amazon-Ressourcennamen enthalten. Stelle sicher, dass die Aufgabenrolle und die Aufgabenausführungsrolle über ausreichende Berechtigungen verfügen.

You've reached the limit of the number of tasks that you can run concurrently

Dieser Fehler tritt auf, wenn du ein Amazon ECS-Servicekontingent überschreitest. Informationen zur Behebung dieses Problems findest du unter Wie löse ich Probleme mit Amazon ECS-Servicekontingenten?

Ähnliche Informationen

Fehler beim Anhalten von Amazon ECS-Aufgaben beheben

Fehler beim Anhalten von Amazon ECS-Aufgaben anzeigen