View a markdown version of this page

Richtlinien und Warteschlangen mit unzustellbaren Briefen wiederholen - Amazon EventBridge

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.

Richtlinien und Warteschlangen mit unzustellbaren Briefen wiederholen

Wenn ein Zielaufruf fehlschlägt, EventBridge versuchen Sie es erneut, bis einer der beiden Grenzwerte erreicht RetryPolicy ist (standardmäßig 5 Versuche oder 300 Sekunden). Dann wird ein Datensatz in die Amazon SQS-Warteschlange geschrieben. OnFailureConfiguration.Arn Legen Sie beide fest, wenn Sie den Abonnenten erstellen: Ohne eine Warteschlange mit unleserlichen Nachrichten wird ein Ereignis, das seine Wiederholungsversuche erschöpft, gelöscht, und die einzige Spur ist die Metrik. EventsDropped

Grenzwerte für Wiederholungsversuche

Die Zustellung endet an dem Limit, das zuerst erreicht wird.

LimitRangeStandard
MaxRetryAttempts0 bis 1855
MaxEventAgeInSeconds60 bis 86.400300

Die Standardwerte sind kürzer als bei einem Custom Event Bus — Classic-Ziel mit 24 Stunden und 185 Versuchen. Ein migriertes Design, das auf einem Tag voller Wiederholungsversuche beruhte, muss explizit auf 86.400 gesetzt MaxEventAgeInSeconds werden. Andernfalls werden Ereignisse, die während eines Zielausfalls von mehr als 5 Minuten fehlschlagen, in die Warteschlange für unzustellbare Nachrichten verschoben, anstatt verspätet zugestellt zu werden. Bei einem FIFO-Abonnenten blockiert ein fehlgeschlagenes Ereignis die späteren Ereignisse in seiner Gruppe, solange es erneut versucht wird. Ein langes Wiederholungsfenster tauscht also die Reihenfolge gegen die Latenz aus.

Der Datensatz mit toten Buchstaben

Der Datensatz ist ein JSON-Dokument, nicht das Ereignis. Das folgende Beispiel zeigt einen Datensatz für zwei Ereignisse, die zusammen in einem Batch fehlgeschlagen sind.

{ "version": "1.0", "busArn": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef", "subscriberArn": "arn:aws:events:us-east-1:111122223333:subscriber/large-orders/EXAMPLEabcdef1234567890", "targetArn": "arn:aws:sqs:us-east-1:111122223333:large-orders", "errorCode": "ACCESS_DENIED", "errorMessage": "The delivery role is not authorized to perform sqs:SendMessage on the target.", "exhaustedRetryCondition": "MaximumEventAgeInSeconds", "retryAttempts": 4, "failedMessages": [ { "eventId": "a1b2c3d4-...", "eventGroupId": "order-1001", "deduplicationId": null, "timestamp": "2026-09-16T18:40:12Z", "targetRequestId": "..." }, { "eventId": "e5f6a7b8-...", "eventGroupId": "order-1001", "deduplicationId": null, "timestamp": "2026-09-16T18:40:13Z", "targetRequestId": "..." } ] }

Jeder Fehler, der die Warteschlange erreicht, wurde zuerst wiederholt: Es gibt keinen Übermittlungsfehler, der übersprungen RetryPolicy wird. Fehler in sich EventBridge selbst werden EventBridge ohne Limit wiederholt und führen nie zu einem Datensatz. In der folgenden Tabelle sind die Codes aufgeführt, die ein Datensatz enthalten kann. errorMessageist auf 1.024 Zeichen gekürzt.

errorCodeWas ist fehlgeschlagenerrorMessage
CUSTOMER_VALIDATIONDie Ziel-API hat die Anfrage abgelehnt (eine 4xx-Antwort): ein schlechter Wert, ein fehlendes Feld, ein falsch formatierter TextDie eigene Nachricht der Ziel-API
ACCESS_DENIEDEventBridge konnte die Bereitstellungsrolle nicht übernehmen, die Rolle darf das Ziel nicht aufrufen oder der AWS KMS Schlüssel des Ziels wurde der Zugriff verweigertEventBridge konnte nicht davon ausgehenrole. Stellen Sie sicher, dass die Rolle existiert und ob ihre Vertrauensrichtlinie es dem EventBridge Dienstprinzipal ermöglicht, sie zu übernehmen. oder EventBridge konnte nicht zugreifenresource. Stellen Sie sicher, dass es existiert und ob seine Richtlinie dem EventBridge Dienstprinzipalzugriff gewährt.
RESOURCE_NOT_FOUNDDas Ziel oder sein AWS KMS Schlüssel existiert nichtDie obige Meldung konnte nicht zugegriffen werden, oder die allgemeine Nachricht
INPUT_TRANSFORMATION_FAILUREDer Input Ausdruck Transformer oder universal-target hat keinen Wert ausgegeben oder erzeugtDer Ausdrucksfehler
THROTTLINGDas Ziel hat den Anruf gedrosseltDie generische Nachricht
EXECUTION_TIMEOUTDas Ziel hat nicht innerhalb von InvocationTimeoutSecondsDie generische Nachricht
REQUEST_TOO_LARGEDie Anfrage hat die Größenbeschränkung des Ziels überschritten; niedriger MaxBatchSizeDie generische Nachricht
PARTIAL_BATCH_FAILUREDas Ziel hat einen Teil eines Batches akzeptiert und den Rest zurückgewiesen. Im Datensatz failedMessages sind nur die abgelehnten Ereignisse aufgeführtDie generische Nachricht
RESOURCE_CONFLICTDas Ziel hat einen Konflikt gemeldet, zum Beispiel einen bereits verwendeten NamenDie generische Nachricht
KMS_INVALID_STATEDer AWS KMS Schlüssel des Ziels ist deaktiviert oder muss noch gelöscht werdenDie generische Nachricht
SFN_TYPE_NOT_SUPPORTEDREQUEST_RESPONSEwurde mit einer Standard-State-Machine verwendet, die keine synchrone Ausführung unterstütztDie generische Nachricht
COMPUTE_EXECUTION_ERROREine REQUEST_RESPONSE Funktion oder Ausführung wurde ausgeführt und ein Fehler gemeldetDie generische Nachricht
INVOCATION_DEPENDENCY_INTERNALDas Ziel hat einen Serverfehler zurückgegeben (eine 5xx-Antwort)Die generische Nachricht
LOOP_DETECTEDDas Ereignis oder ein davon abgeleitetes Ereignis wurde bereits durch den Zielbus geleitet; siehe Erkennung von SchleifenDie generische Nachricht
INTERNAL_SERVER_ERROREin interner Fehler EventBridge beim Telefonieren, der die Wiederholungsversuche immer noch erschöpft hatDie generische Nachricht

Die generische Nachricht lautet Die Zustellung ist fehlgeschlagen. Verwenden Sie bei der Untersuchung den Fehlercode und die Anforderungs-ID dieses Datensatzes und wenden Sie sich an den AWS Support, falls der Fehler weiterhin besteht. EventBridge verwendet ihn überall dort, wo die Übertragung der zugrundeliegenden Nachricht die internen Daten eines anderen Dienstes offenlegen könnte. Bei diesen Codes targetRequestId sind also das errorCode und die Fakten, anhand derer gearbeitet werden muss, zusammen mit den EVENT_DELIVERY_ATTEMPT Protokolldatensätzen, die die gesendete Anfrage enthalten. Es kommen dieselben Werte als Amazon SQS-Nachrichtenattribute an (ERROR_CODE,,,ERROR_MESSAGE,,SUBSCRIBER_ARN,TARGET_ARN,RETRY_ATTEMPTS) BUS_ARNEXHAUSTED_RETRY_CONDITION, sodass ein Verbraucher sie weiterleiten kann, ohne den Haupttext analysieren zu müssen. Verwenden Sie für einen FIFO-Abonnenten eine FIFO-Warteschlange als Warteschlange für unlesbare Briefe. Dabei wird jeder Datensatz MessageGroupId aus den Ereignissen übernommenEventGroupId, sodass die Reihenfolge der Datensätze für eine Gruppe beibehalten wird. EventBridge

Die Zustellungsrolle muss in der Warteschlange enthalten sein. sqs:SendMessage Ohne sie zählt die OnFailureDestinationFailed Metrik jeden Datensatz, der nicht geschrieben werden konnte, und diese Ereignisse gehen verloren.

Ereignisse werden aus der Warteschlange, in der keine Nachrichten mehr angezeigt werden, erneut abgerufen

Die Warteschlange enthält Datensätze, keine Ereignisse. Sie fahren also erneut, indem Sie die Ereignisse vom Bus erneut abspielen. Die Ereignisse müssen noch innerhalb der Aufbewahrungsfrist des Busses liegen.

  1. Lesen Sie die Aufzeichnungen und sammeln Sie alle failedMessages[].eventId sowie die frühesten und neuestentimestamp.

  2. Korrigieren Sie die Ursache in den errorCode Namen: die Richtlinie der Rolle, das Ziel oder der Ausdruck.

  3. Erstellen Sie einen Abonnenten auf demselben Bus mit demselben Ziel und derselben Rolle, einer POINT_IN_TIME Startposition, deren StartingPoint Zeitstempel der früheste und dessen späteste EndPoint ist, und einem SYSTEM_METADATA Filter für die Identifikatoren.

  4. Wenn der Abonnent die Ereignisse übermittelt hat, löschen Sie sie und löschen Sie die Datensätze aus der Warteschlange.

aws eventsv2 create-subscriber \ --name redrive-2026-09-16 \ --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --starting-position POINT_IN_TIME \ --point-in-time-configuration '{ "PointType": "TIMESTAMP", "StartingPoint": "2026-09-16T18:40:00Z", "EndPoint": "2026-09-16T18:41:00Z" }' \ --filter-configuration '{ "Filters": [ { "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:EventId\":[\"a1b2c3d4-...\",\"e5f6a7b8-...\"]}" } ] }' \ --invoke-configuration '{ "TargetArn": "arn:aws:sqs:us-east-1:111122223333:large-orders", "RoleArn": "arn:aws:iam::111122223333:role/EventBusDeliveryRole" }'

Die wiedergegebenen Ereignisse kommen mit an aws:DeliveryTypeREPLAY, sodass ein Verbraucher sie anhand des Live-Verkehrs erkennen kann.