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.
Verwenden Sie Warteschlangen, in denen noch nicht zugestellt wurde, um Ereignisse zu verarbeiten, die nicht zugestellt wurden EventBridge
Wenn Sie verhindern möchten, dass Ereignisse verloren gehen, nachdem sie nicht an ein Ziel zugestellt werden, können Sie eine Warteschlange für unzustellbare Nachrichten konfigurieren und alle fehlgeschlagenen Ereignisse zur späteren Verarbeitung an diese senden.
EventBridge DLQs sind standardmäßige Amazon SQS-Warteschlangen, in denen EventBridge Ereignisse gespeichert werden, die einem Ziel nicht erfolgreich zugestellt werden konnten. Wenn Sie eine Regel erstellen und ein Ziel hinzufügen, können Sie wählen, ob Sie eine Warteschlange für unzustellbare Nachrichten verwenden möchten oder nicht. Wenn Sie eine Warteschlange für unzustellbare Nachrichten konfigurieren, können Sie alle Ereignisse beibehalten, die nicht erfolgreich zugestellt wurden. Anschließend können Sie das Problem lösen, das zur fehlgeschlagenen Ereigniszustellung geführt hat, und die Ereignisse zu einem späteren Zeitpunkt verarbeiten.
Wenn Sie einen DLQ für ein Ziel einer Regel konfigurieren, werden die Ereignisse mit fehlgeschlagenen Aufrufen EventBridge an die ausgewählte Amazon SQS-Warteschlange gesendet.
Ereignisfehler werden auf unterschiedliche Weise behandelt. Einige Ereignisse werden gelöscht oder ohne Wiederholungsversuche an eine Warteschlange für unzustellbare Nachrichten gesendet. Bei Fehlern, die beispielsweise auf fehlende Berechtigungen für ein Ziel, eine Zielressource, die nicht mehr existiert, oder auf ein Ziel, das aufgrund einer ungültigen Adresse oder eines Fehlers bei der DNS-Suche nicht gefunden werden kann, werden keine erneuten Versuche unternommen, bis Maßnahmen zur Behebung des zugrundeliegenden Problems ergriffen wurden. EventBridge sendet diese Ereignisse direkt an den Ziel-DLQ, falls Sie eines angegeben haben.
Wenn die Übertragung eines Ereignisses fehlschlägt, wird bei Amazon CloudWatch Metrics ein Ereignis EventBridge veröffentlicht, das darauf hinweist, dass ein Ziel invocation fehlgeschlagen ist. Wenn Sie einen DLQ verwenden, werden zusätzliche Metriken an CloudWatch einschließlich InvocationsSentToDLQ und InvocationsFailedToBeSentToDLQ gesendet.
Sie können DLQs auch für Event-Busse angeben, wenn Sie diese AWS KMS Kundenverwaltete Schlüssel zum Verschlüsseln von Ereignissen im Ruhezustand verwenden. Weitere Informationen finden Sie unter Verwendung von Warteschlangen mit unverschlüsselten Buchstaben zur Erfassung verschlüsselter Ereignisfehler in EventBridge.
Jede Nachricht in Ihrer Warteschlange für unzustellbare Nachrichten enthält die folgenden benutzerdefinierten Attribute:
RULE_ARNTARGET_ARNERROR_CODEIm Folgenden finden Sie ein Beispiel für die Fehlercodes, die eine Warteschlange für unzustellbare Nachrichten zurückgeben kann:
-
ACTION_DECRYPTION_FAILURE -
CONNECTION_FAILURE -
CROSS_ACCOUNT_INGESTION_FAILED -
CROSS_REGION_INGESTION_FAILED -
ERROR_FROM_TARGET -
EVENT_DECRYPTION_FAILURE -
EVENT_ENCRYPTION_FAILURE -
EVENTS_IN_BATCH_REQUEST_REJECTED -
FAILED_TO_ASSUME_ROLE -
INTERNAL_ERROR -
INVALID_JSON -
INVALID_PARAMETER -
NO_PERMISSIONS -
NO_RESOURCE -
RESOURCE_ALREADY_EXISTS -
RESOURCE_LIMIT_EXCEEDED -
RESOURCE_MODIFICATION_COLLISION -
RULE_DECRYPTION_FAILURE -
SDK_CLIENT_ERROR -
THIRD_ACCOUNT_HOP_DETECTED -
THIRD_REGION_HOP_DETECTED -
THROTTLING -
TIMEOUT -
TRANSIENT_ASSUME_ROLE -
UNKNOWN
-
ERROR_MESSAGEEXHAUSTED_RETRY_CONDITIONDie folgenden Bedingungen können zurückgegeben werden:
-
MaximumRetryAttempts -
MaximumEventAgeInSeconds
-
RETRY_ATTEMPTS
Das folgende Video befasst sich mit der Einrichtung von DLQs:
Themen
Überlegungen zum Verwenden einer Warteschlange für unzustellbare Nachrichten
Beachten Sie bei der Konfiguration eines DLQ für Folgendes. EventBridge
-
Es werden nur Standardwarteschlangen unterstützt. Sie können keine FIFO-Warteschlange für einen DLQ-Eingang verwenden. EventBridge
-
EventBridge enthält Ereignismetadaten und Nachrichtenattribute in der Nachricht, darunter den Fehlercode, die Fehlermeldung, die Wiederholungsbedingung „Erschöpft“, den Regel-ARN, die Wiederholungsversuche und den Ziel-ARN. Sie können diese Werte verwenden, um ein Ereignis und die Ursache des Fehlers zu identifizieren.
-
Berechtigungen für Warteschlangen für unzustellbare Nachrichten im selben Konto:
-
Wenn Sie mithilfe der Konsole einer Regel ein Ziel hinzufügen und eine Amazon SQS-Warteschlange in demselben Konto auswählen, wird eine ressourcenbasierte Richtlinie, die den EventBridge Zugriff auf die Warteschlange gewährt, für Sie an die Warteschlange angehängt.
-
Wenn Sie die EventBridge API verwenden
PutTargets, um ein Ziel für eine Regel hinzuzufügen oder zu aktualisieren, und Sie eine Amazon SQS-Warteschlange in demselben Konto auswählen, müssen Sie der ausgewählten Warteschlange manuell Berechtigungen gewähren. Weitere Informationen hierzu finden Sie unter Erteilen von Berechtigungen für die Warteschlange für unzustellbare Nachrichten.
-
-
Berechtigungen für die Verwendung von Amazon SQS-Warteschlangen von einem anderen Konto aus. AWS
-
Wenn Sie eine Regel über die Konsole erstellen, werden Warteschlangen aus anderen Konten nicht zur Auswahl angezeigt. Sie müssen den ARN für die Warteschlange in dem anderen Konto angeben und dann manuell eine ressourcenbasierte Richtlinie anhängen, um der Warteschlange eine Berechtigung zu gewähren. Weitere Informationen hierzu finden Sie unter Erteilen von Berechtigungen für die Warteschlange für unzustellbare Nachrichten.
-
Wenn Sie mithilfe der API eine Regel erstellen, müssen Sie manuell eine ressourcenbasierte Richtlinie an die SQS-Warteschlange in einem anderen Konto anhängen, die als Warteschlange für unzustellbare Nachrichten verwendet wird. Weitere Informationen hierzu finden Sie unter Erteilen von Berechtigungen für die Warteschlange für unzustellbare Nachrichten.
-
-
Die von Ihnen verwendete Amazon-SQS-Warteschlange muss sich in derselben Region befinden, in der Sie die Regel erstellen.
Erteilen von Berechtigungen für die Warteschlange für unzustellbare Nachrichten
Um Ereignisse erfolgreich an die Warteschlange weiterzuleiten, EventBridge müssen Sie über die entsprechende Berechtigung verfügen. Wenn Sie mithilfe der EventBridge Konsole einen DLQ angeben, werden die Berechtigungen automatisch hinzugefügt. Dies umfasst:
Wenn Sie einen DLQ für ein Ziel einer Regel konfigurieren.
Wenn Sie einen DLQ für einen Event-Bus konfigurieren, für den Sie angegeben haben, dass ein AWS KMS Kundenverwalteter Schlüssel zum Verschlüsseln von Ereignissen im Ruhezustand EventBridge verwendet wird.
Weitere Informationen finden Sie unter Verwendung von Warteschlangen mit unverschlüsselten Buchstaben zur Erfassung verschlüsselter Ereignisfehler in EventBridge.
Wenn Sie einen DLQ mithilfe der API angeben oder eine Warteschlange verwenden, die sich in einem anderen AWS Konto befindet, müssen Sie manuell eine ressourcenbasierte Richtlinie erstellen, die die erforderlichen Berechtigungen gewährt, und sie dann an die Warteschlange anhängen.
Beispiel für Berechtigungen in einer Warteschlange mit unleserlichen Buchstaben
Die folgende ressourcenbasierte Richtlinie veranschaulicht, wie die erforderlichen Berechtigungen zum Senden von Ereignisnachrichten an eine Amazon EventBridge SQS-Warteschlange erteilt werden. Das Richtlinienbeispiel gewährt dem EventBridge Service die Erlaubnis, den SendMessage Vorgang zum Senden von Nachrichten an eine Warteschlange mit dem Namen "DLQ“ zu verwenden. MyEvent Die Warteschlange muss sich in der Region us-west-2 im AWS Konto 123456789012 befinden. Die Condition Anweisung erlaubt nur Anfragen, die von einer Regel mit dem Namen "MyTestRule" stammen, die in der Region us-west-2 im Konto 123456789012 erstellt wurde. AWS
{ "Sid": "Dead-letter queue permissions", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-west-2:123456789012:MyEventDLQ", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:events:us-west-2:123456789012:rule/MyTestRule" } } }
Beispiel für Berechtigungen für Warteschlangen mit unlesbaren Buchstaben im Eventbus
Die folgende ressourcenbasierte Richtlinie veranschaulicht, wie die erforderlichen Berechtigungen erteilt werden, wenn ein DLQ für einen Event-Bus angegeben wird. In diesem Fall aws:SourceArn gibt sie den ARN des Event-Busses an, der die Ereignisse an den DLQ sendet. Auch in diesem Beispiel muss sich die Warteschlange in derselben Region wie der Event-Bus befinden.
{ "Sid": "Dead-letter queue permissions", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:region:account-id:queue-name", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:events:region:account-id:event-bus/event-bus-arn" } } }
Wenn Sie die Richtlinie an die Warteschlange anhängen möchten, verwenden Sie die Amazon-SQS-Konsole, öffnen Sie die Warteschlange, wählen Sie dann die Zugriffsrichtlinie aus und bearbeiten Sie die Richtlinie. Sie können auch die AWS CLI verwenden. Weitere Informationen hierzu finden Sie unter Amazon-SQS-Berechtigungen.
So senden Sie Ereignisse aus einer Warteschlange für unzustellbare Nachrichten erneut
Sie können Nachrichten auf zwei Arten aus einer Warteschlange für unzustellbare Nachrichten verschieben:
-
Vermeiden des Schreibens von Amazon-SQS-Verbraucherlogik – Legen Sie Ihre Warteschlange für unzustellbare Nachrichten als Ereignisquelle für die Lambda-Funktion fest, um Ihre Warteschlange für unzustellbare Nachrichten zu leeren.
-
Amazon SQS-Verbraucherlogik schreiben — Verwenden Sie die Amazon SQS-API, das AWS SDK oder, AWS CLI um benutzerdefinierte Verbraucherlogik für das Abfragen, Verarbeiten und Löschen der Nachrichten im DLQ zu schreiben.