Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Fehlerbehebung bei Amazon EventBridge Scheduler
Mithilfe der Themen in diesem Abschnitt können Sie häufig auftretende Probleme mit Amazon EventBridge Scheduler beheben.
Topics
Mein Zeitplan schlägt mit Zielfehlern fehl
Fehler beim Aufrufen von Zielen sind eines der häufigsten Probleme mit EventBridge Scheduler. Diese Fehler können aus verschiedenen Gründen auftreten:
Häufige Ursachen:
Fehlende oder falsche Zielparameter.
Probleme mit der Netzwerkkonnektivität.
API-Drosselung.
Falsche Zielkonfiguration.
Fehlerbehebungsschritte
-
Richten Sie eine Dead-Letter-Warteschlange (DLQ) ein
Eine DLQ hilft Ihnen dabei, fehlgeschlagene Aufrufe zu erfassen und zu analysieren.
Fehlgeschlagene Aufrufe werden mit detaillierten Fehlermeldungen an den DLQ gesendet.
Um eine DLQ zu konfigurieren, fügen Sie sie Ihrer Zeitplankonfiguration hinzu:
{ "DeadLetterConfig": { "Arn": "arn:aws:sqs:region:account-id:MyDLQ" } }Hinweis: Wenn Ihr DLQ mit einem KMS-Schlüssel verschlüsselt ist, stellen Sie sicher, dass die Schlüsselrichtlinie es EventBridge Scheduler erlaubt, ihn zu verwenden:
{ "Sid": "Allow EventBridge Scheduler to use the key", "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" } -
Überprüfen Sie die API-Parameter
Stellen Sie sicher, dass alle erforderlichen Parameter für Ihre Ziel-API-Aufrufe vorhanden und korrekt formatiert sind.
Überprüfen Sie, ob die Parameterwerte innerhalb der zulässigen Bereiche liegen.
Stellen Sie sicher, dass der API-Endpunkt von Ihrer VPC aus zugänglich ist, wenn Sie VPC-Endpunkte verwenden.
-
Überprüfen Sie die Netzwerkkonfiguration
Wenn Anrufe aufgrund vorübergehender Netzwerkprobleme fehlschlagen, implementieren Sie die Wiederholungslogik.
Beispiel für eine Wiederholungsrichtlinie:
{ "RetryPolicy": { "MaximumRetryAttempts": 3, "MaximumEventAgeInSeconds": 3600 } } -
Überprüfen Sie die zielspezifischen Konfigurationen
Stellen Sie bei Zielen mit Vorlagen (wie ECS-Aufgaben) sicher, dass Sie Überschreibungen über den
Target.InputParameter der API zur Erstellung von Zeitplänen angeben.Stellen Sie sicher, dass Ihr Zieldienst unterstützt und korrekt konfiguriert ist.
Probleme mit den Berechtigungen für die Ausführung von Terminplanrollen
Probleme mit IAM-Rollenberechtigungen sind ein häufiger Grund für Fehler bei der Ausführung von Zeitplänen. Gehen Sie wie folgt vor, um diese Probleme zu beheben und zu lösen:
Häufige Ursachen
Fehlende erforderliche Berechtigungen für den Zieldienst
Falsche Rollenkonfiguration im Zeitplan
Fehlende Vertrauensbeziehung mit dem EventBridge Scheduler-Dienst
Unzureichende Berechtigungen für den Zugriff auf verschlüsselte Ressourcen
Symptome
Erhöhte
TargetErrorCountMetrik in CloudWatchZeitpläne können ohne offensichtliche Probleme in der Zeitplankonfiguration nicht ausgeführt werden
Fehlerbehebungsschritte
-
CloudWatch Kennzahlen überwachen
Checken Sie die
TargetErrorCountMetrik ein CloudWatch.
-
Verwenden Sie Dead-Letter Queue (DLQ), um Berechtigungsprobleme zu bestätigen
Konfigurieren Sie einen DLQ für Ihren Zeitplan.
Wenn bei Ihrem Ziel Berechtigungsprobleme bestehen und der DLQ ordnungsgemäß konfiguriert ist, werden Ihnen die fehlgeschlagenen Aufrufe in der DLQ mit berechtigungsbezogenen Fehlermeldungen angezeigt.
Wenn die DLQ leer bleibt, obwohl fehlgeschlagene Ausführungen in den CloudWatch Metriken angezeigt werden, deutet dies wahrscheinlich auf ein Berechtigungsproblem hin, das Scheduler daran hindert EventBridge , in die DLQ selbst zu schreiben.
Anmerkung
Stellen Sie sicher, dass der DLQ selbst über die richtigen Berechtigungen verfügt. Wenn es verschlüsselt ist, stellen Sie sicher, dass der EventBridge Scheduler berechtigt ist, den KMS-Schlüssel zu verwenden.
-
Überprüfen Sie die Vertrauensbeziehung
Stellen Sie sicher, dass Ihre IAM-Rolle die richtige Vertrauensbeziehung zu EventBridge Scheduler hat:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" }] } -
Überprüfen Sie die Berechtigungen für die Rolle „Ausführung planen“
Die Ausführungsrolle des Zeitplans benötigt spezielle Berechtigungen, um verschiedene Zieltypen aufrufen zu können.
Beispielberechtigungen, die in die Richtlinie für die Ausführungsrolle Ihres Zeitplans aufgenommen werden sollten:
// For Lambda function targets - add to schedule execution role { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:region:account-id:function:function-name" }] } // For SQS queue targets - add to schedule execution role { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": "arn:aws:sqs:region:account-id:queue-name" }] } -
Suchen Sie nach verschlüsseltem Ressourcenzugriff
Wenn Ihr Ziel verschlüsselte Ressourcen verwendet (z. B. KMS-verschlüsselte SQS-Warteschlangen), stellen Sie sicher, dass Ihre Rolle berechtigt ist, den KMS-Schlüssel zu verwenden:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:account-id:key/key-id" } ] } -
Überprüfen Sie die ARN-Konfiguration der Rolle
Stellen Sie sicher, dass der Rollen-ARN in Ihrer Zeitplankonfiguration korrekt ist.
Stellen Sie sicher, dass die Rolle in derselben AWS-Konto Region wie Ihr Zeitplan existiert.
Servicekontingenten verstehen und verwalten
Wenn Sie Probleme bei der Erstellung von Zeitplänen haben oder gedrosselte Aufrufe sehen, haben Sie möglicherweise die Servicekontingentgrenzen erreicht. EventBridge Scheduler verfügt über Kontingente für die Anzahl der Zeitpläne, Zeitplangruppen und Aufrufraten, die je nach Region variieren können.
Identifizierung von Kontingentproblemen
So stellen Sie fest, ob Sie die Kontingentgrenzen erreichen:
-
Überwachen Sie die CloudWatch Kennzahlen
Überprüfen Sie die
InvocationThrottleCountMetrik. Eine Erhöhung dieser Metrik bedeutet, dass Sie Ihr Limit für die Aufrufrate überschritten haben.Überprüfen Sie die
InvocationAttemptCountMetrik, um Ihre aktuelle Nutzung zu verstehen.
-
Achten Sie auf spezifische Fehlermeldungen
Beim Erstellen oder Ändern von Zeitplänen
LimitExceededExceptionbedeutet a, dass Sie die maximale Anzahl von Zeitplänen oder Zeitplangruppen erreicht haben.API-Aufrufe, die Drosselungsfehler zurückgeben, deuten darauf hin, dass Sie das API-Anforderungskontingent überschritten haben.
Probleme mit dem Kontingent lösen
Wenn Sie feststellen, dass Sie die Kontingentgrenzen erreicht haben:
Überprüfe und optimiere deine aktuellen Zeitpläne. Erwägen Sie, ähnliche Zeitpläne zu konsolidieren oder ungenutzte zu entfernen.
Implementieren Sie zur API-Drosselung Wiederholungsversuche mit Backoff in Ihren API-Aufrufen.
Wenn Sie höhere Kontingente benötigen, fordern Sie eine Erhöhung über die Service Quotas Quotas-Konsole an. Wählen Sie EventBridge Scheduler aus, wählen Sie das Kontingent aus, das Sie erhöhen möchten, und reichen Sie eine Anfrage mit Ihrer geschäftlichen Begründung ein.
Probleme beim Planen, Muster und Auslösen des Timings
Benutzer stoßen manchmal auf Probleme, bei denen Zeitpläne nicht zu den erwarteten Zeiten ausgelöst werden. Dies kann am häufigsten auf Missverständnisse in Bezug auf Zeitplanmuster, Änderungen der Sommerzeit oder flexible Zeitfenster zurückzuführen sein.
Häufige Ursachen
Fehlinterpretation von Cron-Ausdrücken.
Unerwartetes Verhalten bei Änderungen der Sommerzeit.
Verwirrung über flexible Zeitfenster.
Missverständnis von Preisausdrücken.
Fehlerbehebungsschritte
-
Überprüfen Sie die Cron-Ausdrücke
Stellen Sie sicher, dass Ihr Cron-Ausdruck korrekt formatiert ist.
Beachten Sie, dass Sie in einem Cron-Ausdruck nicht day-of-month sowohl als auch day-of-week Felder gleichzeitig angeben können.
-
Überlegungen zur Zeitzone
Wählen Sie bei der Erstellung des Zeitplans Ihre bevorzugte Zeitzone aus.
Erfahren Sie, wie sich die Sommerzeit auf Ihren Zeitplan auswirkt, da diese Anpassung auf UTC basiert.
Beispiel für die Auswirkungen der Sommerzeit: Wenn Sie einen Zeitplan so konfigurieren, dass er um 7:00 Uhr GMT ausgeführt wird:
Im Winter: Der Zeitplan läuft um 7:00 Uhr GMT (als GMT = UTC)
Im Sommer: Der Flugplan läuft immer noch um 7:00 Uhr UTC, was jetzt 6:00 Uhr GMT/BST ist
Wenn Sie möchten, dass der Zeitplan das ganze Jahr über zur gleichen Ortszeit läuft, achten Sie darauf, bei der Erstellung des Zeitplans die entsprechende Zeitzone auszuwählen und zu erfahren, wie sich die Sommerzeit auf diese Zeitzone auswirken kann.
-
Machen Sie sich mit flexiblen Zeitfenstern vertraut
Flexible Zeitfenster ermöglichen es dem EventBridge Scheduler, Aufrufe zu optimieren.
Der Zeitplan wird möglicherweise nicht genau am Anfang des Fensters ausgelöst.
Überwachen Sie die tatsächlichen Aufrufzeiten, um das Verhalten zu verstehen.
-
Überprüfen Sie die Rate und die Cron-Ausdrücke
Stellen Sie sicher, dass die Preisausdrücke korrekt formatiert sind (z. B.
rate(5 minutes),rate(1 hour)).Beachten Sie sowohl bei Rate- als auch bei Cron-Ausdrücken, dass Zeitplan-Aufrufe nicht auf die 0te Sekunde einer Minute beschränkt sind.
Zeitpläne können innerhalb der angegebenen Minute ausgelöst werden, aber nicht unbedingt genau am Anfang der Minute.
Beispiel:
Ein Zeitplan, der
rate(1 hour)möglicherweise um 14:00:45 Uhr, 15:00:32 Uhr, 16:00:18 Uhr usw. läuft.Ein für
0 * * * ? *(jede Stunde) festgelegter Cron-Zeitplan könnte um 14:00:15 Uhr, 15:00:07 Uhr, 16:00:52 Uhr usw. ausgeführt werden.
-
Metriken überwachen CloudWatch
Verwenden Sie die
InvocationAttemptCountMetrik, um zu überprüfen, ob Ihr Zeitplan auslöst.Prüfen Sie
TargetErrorCount, ob Aufrufe fehlschlagen.Wenn Sie eine Warteschlange für
InvocationsSentToDeadLetterCountunzustellbare Briefe konfiguriert haben, überwachen Sie diese, um fehlgeschlagene Aufrufe nachzuverfolgen.
Erstellen von Zeitplanmustern und Cron-Ausdrücken
Benutzer stoßen beim Erstellen von Zeitplanmustern häufig auf Probleme, insbesondere bei Cron-Ausdrücken. Hier sind einige häufig auftretende Probleme und wie man sie löst:
Häufige Probleme
Falsche Cron-Syntax
Es wird versucht, nicht unterstützte Cron-Funktionen zu verwenden
Verwirrung darüber, welche Felder zusammen verwendet werden können
Fehlerbehebungsschritte
-
Überprüfen Sie die Syntax der Cron-Ausdrücke
Stellen Sie sicher, dass Ihr Cron-Ausdruck dem richtigen Format folgt:.
Minutes Hours Day-of-month Month Day-of-week YearDenken Sie daran, dass EventBridge Scheduler den Cron-Standard mit einem zusätzlichen Jahresfeld verwendet.
-
Verstehen Sie die Einschränkungen
Sie können die day-of-week Felder day-of-month und nicht gleichzeitig angeben, wie hier beschrieben.
Cron-Ausdrücke, die zu schnelleren Häufigkeiten als mit 1 Minute führen, werden nicht unterstützt.
-
Verwenden Sie die Funktion zur Vorschau des Zeitplans
Beim Erstellen oder Bearbeiten eines Zeitplans bietet der EventBridge Scheduler eine Vorschau der nächsten 10 Ausführungszeiten.
Verwenden Sie diese Vorschau, um zu überprüfen, ob Ihr Zeitplan zu den vorgesehenen Zeiten ausgeführt wird.
Wenn die Vorschau nicht Ihren Erwartungen entspricht, überprüfen Sie Ihren Cron-Ausdruck und passen Sie ihn an.
Wird mein Ziel ausgelöst?
Um zu überprüfen, ob dein Ziel ausgelöst wird:
-
Überprüfen Sie die CloudWatch Metriken:
InvocationAttemptCountzeigt die Anzahl der versuchten Aufrufe anTargetErrorCountgibt an, ob irgendwelche Aufrufe fehlgeschlagen sindTargetErrorThrottledCountzeigt an, ob Ihr Ziel gedrosselt wirdInvocationDroppedCountgibt an, ob Aufrufe verworfen wurden
Konfigurieren Sie eine Dead-Letter-Warteschlange (DLQ), um alle fehlgeschlagenen Aufrufe aufzuzeichnen und zu analysieren.
Vorlagen im Vergleich zu universellen Zielen
Wenn Sie eine Fehlermeldung wie „Ungültige Anfrage bereitgestellt: [Service] ist kein unterstützter Dienst für ein Ziel“ erhalten, versuchen Sie möglicherweise, einen nicht unterstützten Dienst als Zielvorlage zu verwenden.
Um dieses Problem zu lösen:
Prüfen Sie, ob Ihr gewünschter Service als Target-Vorlage unterstützt wird.
Falls nicht unterstützt, verwenden Sie stattdessen ein universelles Ziel und konfigurieren Sie es so, dass der entsprechende API-Aufruf an Ihren Service erfolgt.
Planen Sie Aktualisierungen, die unerwartete Aufrufe auslösen
Wenn Sie eine Änderung an einem Zeitplan vornehmen, spiegeln Aufrufe möglicherweise nicht sofort den aktualisierten Zeitplan wider. Warten Sie einen Augenblick, bis die Änderungen wirksam werden. Wenn Sie beispielsweise einen Zeitplan kurz vor seiner ursprünglichen Triggerzeit aktualisieren, wird möglicherweise ein Aufruf angezeigt, der auf der ursprünglichen Zeitplankonfiguration basiert.
Einmalige Zeitpläne deaktivieren oder aktivieren
Wenn ein einmaliger Zeitplan nach Ablauf der ursprünglich geplanten Zeit wieder aktiviert wird, ruft der Zeitplan möglicherweise sofort sein Ziel auf. Dies kann auch dann der Fall sein, wenn der Zeitplan vor seiner ursprünglichen Ausführungszeit deaktiviert wurde.
Beispiel:
Aktuelle Uhrzeit: 13:15 UTC
Einmaliger Zeitplan erstellt für: 13:30 UTC
Der Zeitplan wurde vor 13:30 Uhr UTC deaktiviert
Der Zeitplan wurde um 14:00 Uhr UTC wieder aktiviert
Ergebnis: Das Ziel kann sofort nach der erneuten Aktivierung aufgerufen werden