Wie behebe ich Probleme im Zusammenhang mit geplanten Aufgaben in Amazon ECS?

Lesedauer: 4 Minute
0

Ich habe geplant, dass meine Amazon Elastic Container Service (Amazon ECS)-Aufgabe regelmäßig ausgeführt wird. Meine Amazon-ECS-Aufgabe wurde jedoch nicht ausgelöst. Ich erhalte keine Ausführungsprotokolle oder keinen Verlauf der Aufgaben im Cluster.

Auflösung

Wenn Sie eine geplante Amazon-ECS-Aufgabe verwenden, ruft Amazon CloudWatch Events die RunTask-API an Amazon ECS auf, um die Aufgaben in Ihrem Namen auszuführen.

Ihre geplante Amazon-ECS-Aufgabe wird möglicherweise aus folgenden Gründen nicht aufgerufen:

  • Die Amazon-EventBridge-Zeit oder der Cron-Ausdruck ist falsch konfiguriert.
  • Die EventBridge-Regel ruft das Ziel nicht auf.
  • Die RunTask-API konnte nicht ausgeführt werden.
  • Der Container wird aufgrund von Anwendungsproblemen oder Ressourcenbeschränkungen beendet.

Überprüfen Sie, ob der EventBridge-Cron-Ausdruck falsch konfiguriert ist

Um den EventBridge-Cron-Ausdruck abzurufen, führen Sie den folgenden AWS Command Line Interface (AWS CLI)-Befehl aus:

$ aws events describe-rule --name "example-rule" --region example-region

In der Ausgabe des Befehls können Sie den konfigurierten EventBridge-Cron-Ausdruck im Parameter ScheduleExpression anzeigen. Stellen Sie sicher, dass Sie den Zeitplan für die Regel in der Zeitzone UTC+0 festlegen.

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

Prüfen Sie, ob die Regel das Ziel nicht aufruft

Verwenden Sie die von EventBridge generierten Amazon-CloudWatch-Metriken, um die Regelleistung anzuzeigen. Aufruf-Datenpunkte zeigen an, dass das Ziel von der Regel aufgerufen wurde. Wenn FailedInvocations-Datenpunkte vorhanden sind, liegt ein Problem beim Aufrufen des Ziels vor. FailedInvocations stellt einen dauerhaften Fehler dar und kann auf falsche Berechtigungen oder eine Fehlkonfiguration des Ziels zurückzuführen sein.

Gehen Sie wie folgt vor, um die CloudWatch-Metriken für die EventBridge-Regel zu überprüfen:

  1. Öffnen Sie die CloudWatch-Konsole.
  2. Wählen Sie im Navigationsbereich Metriken und dann Alle Metriken aus.
  3. Wählen Sie Ereignisse.
  4. Wählen Sie Nach Regelname.
  5. Wählen Sie die Metriken TriggerRules, Invocations und FailedInvocations (falls verfügbar) für die EventBridge-Regel aus, die für die Ausführung der ECS-Aufgabe konfiguriert ist.
  6. Wählen Sie die Registerkarte Grafische Metriken.
  7. Wählen Sie für alle aufgelisteten Metriken SUM für Statistik aus.

Wenn FailedInvocations-Datenpunkte vorhanden sind, liegt möglicherweise ein Problem im Zusammenhang mit unzureichenden Zielberechtigungen vor. Stellen Sie sicher, dass EventBridge Zugriff hat, um Ihre ECS-Aufgabe aufzurufen. Stellen Sie sicher, dass die AWS Identity and Access Management (IAM)-Rolle für EventBridge über die erforderlichen Berechtigungen verfügt. Weitere Informationen finden Sie unter IAM-Rolle für Amazon ECS CloudWatch Events.

Überprüfen Sie, ob die RunTask-Aktion nicht ausgeführt wurde

Um zu verifizieren, ob die RunTask-API nicht ausgeführt wurde, suchen Sie im AWS-CloudTrail-Ereignisverlauf nach RunTask innerhalb des Zeitraums, in dem die geplante ECS-Aufgabe voraussichtlich aufgerufen werden sollte.

Gehen Sie wie folgt vor, um festzustellen, ob die geplante Aufgabe nicht aufgerufen wurde, weil die RunTask-Aktion fehlgeschlagen ist:

  1. Öffnen Sie die AWS-CloudTrail-Konsole.
  2. Wählen Sie im Navigationsbereich Ereinisverlauf aus.
  3. Wählen Sie auf der Seite Ereignisverlauf für Suchattribute die Option Ereignisname aus.
  4. Geben Sie für den Ereignisnamen RunTask ein.
  5. Wählen Sie den Zeitraum im Zeitbereichsfilter basierend darauf, wann die geplante ECS-Aufgabe voraussichtlich ausgeführt werden sollte.
    Hinweis: Die voreingestellten Werte für den Zeitbereich sind 30 Minuten, 1 Stunde, 3 Stunden und 12 Stunden. Um einen benutzerdefinierten Zeitraum anzugeben, wählen Sie Benutzerdefiniert aus.
  6. Wählen Sie in der Ergebnisliste das Ereignis aus, das Sie anzeigen möchten.
  7. Scrollen Sie auf der Seite Details zu Ereignisdatensatz, um den JSON-Ereignisdatensatz anzuzeigen
  8. Suchen Sie im JSON-Ereignisdatensatz nach den Elementen errorMessage oderresponseElements.failures.reason.
    Diese Elemente im JSON-Ereignisdatensatz zeigen den Grund dafür an, dass die geplante ECS-Aufgabe nicht aufgerufen wurde.

Beispiele für Gründe für den Ausfall der RunTask-API und ihre Ursachen finden Sie unter Gründe für API-Fehler.

Überprüfen Sie, ob der Container nach der Ausführung der Aufgabe beendet wurde

Die Amazon-ECS-Aufgaben können aufgrund von Anwendungsproblemen oder Ressourcenbeschränkungen auch nach erfolgreicher Ausführung der Aufgabe angehalten werden. Weitere Informationen finden Sie unter Wie behebe ich Probleme mit Containern, die in meinen Amazon-ECS-Aufgaben beendet werden?


Relevante Informationen

Wie behebe ich Amazon-ECS-Aufgaben auf Fargate, die unerwartet stoppen?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren