Amazon SNS Queues für unzustellbare Nachrichten (DLQs) - Amazon Simple Notification Service

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.

Amazon SNS Queues für unzustellbare Nachrichten (DLQs)

Eine Queue für unzustellbare Nachrichten ist eine Amazon-SQS-Queue, an die ein Amazon SNS Abonnement Nachrichten senden kann, die nicht erfolgreich an Abonnenten gesendet werden konnten. Nachrichten, die aufgrund von Clientfehlern oder Serverfehlern nicht zugestellt werden können, werden in der Queue für unzustellbare Nachrichten zur weiteren Analyse oder erneuten Verarbeitung gespeichert. Weitere Informationen finden Sie unter Konfigurieren einer Amazon-SNS-Warteschlange für unzustellbare Nachrichten für ein Abonnement und Wiederholungsversuche bei der Nachrichtenzustellung Amazon SNS.

Anmerkung
  • Das Amazon SNS Abonnement und die Amazon SQS Queue müssen unter demselben AWS-Konto und derselben Region laufen.

  • Für ein FIFO-Thema können Sie eine Amazon-SQS-Warteschlange als Warteschlange für unzustellbare Nachrichten für das Amazon-SNS-Abonnement verwenden. FIFO-Themenabonnements verwenden FIFO-Warteschlangen und Standardthemenabonnements verwenden Standardwarteschlangen.

  • Wenn Sie eine verschlüsselte Amazon-SQS-Warteschlange als Warteschlange für unzustellbare Nachrichten nutzen möchten, müssen Sie einen benutzerdefinierten KMS-Schlüssel mit einer Schlüsselrichtlinie verwenden, die dem Amazon-SNS-Service-Prinzipal Zugriff auf AWS KMS-API-Aktionen gewährt. Weitere Informationen finden Sie unter Verschlüsselung im Ruhezustand in dieser Anleitung und Schutz von Amazon SQS Daten mithilfe serverseitiger Verschlüsselung (SSE) undAWS KMS im Amazon Simple Queue Service-Entwicklerhandbuch.

Warum schlagen Nachrichtenzustellungen fehl?

Im Allgemeinen schlägt die Nachrichtenzustellung fehl, wenn Amazon SNS aufgrund eines clientseitigen oder serverseitigen Fehlers nicht auf einen abonnierten Endpunkt zugegriffen werden kann. Wenn Amazon SNS einen clientseitigen Fehler erhält oder weiterhin einen serverseitigen Fehler für eine Nachricht erhält, die über die Anzahl der Wiederholungsversuche hinausgeht, die in der entsprechenden Wiederholungsrichtlinie angegeben ist, verwirft Amazon SNS die Nachricht — es sei denn, es ist eine Queue für unzustellbare Nachrichten an das Abonnement angehängt. Fehlgeschlagene Zustellungen ändern den Status Ihrer Abonnements nicht. Weitere Informationen finden Sie unter Wiederholungsversuche bei der Nachrichtenzustellung Amazon SNS.

Client-seitige Fehler

Client-seitige Fehler können auftreten, wenn Amazon SNS über veraltete Abonnementmetadaten verfügt. Diese Fehler treten im Allgemeinen auf, wenn ein Besitzer den Endpunkt löscht (z. B. eine Lambda-Funktion, mit der ein Thema abonniert wird) oder wenn ein Besitzer die dem abonnierten Endpunkt zugewiesene Richtlinie so ändert, dass Amazon SNS keine Nachrichten an den Endpunkt zugestellt werden können. Amazon SNS versucht nicht, eine durch einen clientseitigen Fehler verursachte fehlerhafte Nachrichtenzustellung zu wiederholen. Amazon SNS versucht keine erneute Nachrichtenzustellung, die aufgrund eines clientseitigen Fehlers fehlschlägt.

Serverseitige Fehler

Serverseitige Fehler können auftreten, wenn das für den abonnierten Endpunkt verantwortliche System nicht verfügbar ist oder eine Ausnahme zurückgibt, die angibt, dass eine gültige Anfrage nicht von Amazon SNS verarbeitet werden kann. Bei serverseitigen Fehlern versucht Amazon SNS die fehlgeschlagenen Zustellungen mithilfe einer linearen oder exponentiellen Backoff-Funktion zu wiederholen. Bei serverseitigen Fehlern, die durch von AWS verwaltete und von Amazon SQS oder AWS Lambda gesicherte Endpunkte verursacht werden, wird die Zustellung innerhalb von 23 Tagen bis zu 100.015-mal von Amazon SNS wiederholt.

Von Kunden verwaltete Endpunkte (wie HTTP, SMTP, SMS oder mobile Pushnachrichten) können ebenfalls serverseitige Fehler verursachen. Amazon SNS versucht auch die Zustellung an diese Endgerätetypen erneut. Obwohl HTTP-Endpunkte von Kunden definierte Wiederholungsrichtlinien unterstützen, legt Amazon SNS eine interne Zustellungsrichtlinie für SMTP-, SMS- und mobile Push-Endpunkte auf 50-mal innerhalb von 6 Stunden fest.

Funktionsweise von Queues für unzustellbare Nachrichten

Eine Queue für unzustellbare Nachrichten wird einem Amazon SNS-Abonnement (nicht einem Thema) zugewiesen, da Nachrichtenzustellungen auf Abonnementebene stattfinden. Auf diese Weise können Sie den ursprünglichen Zielendpunkt für jede Nachricht leichter identifizieren.

Bei einer Queue für unzustellbare Nachrichten, die einem Amazon SNS-Abonnement zugeordnet ist, handelt es sich um eine gewöhnliche Amazon SQS-Queue. Weitere Informationen zum Aufbewahrungszeitraum für Nachrichten finden Sie unter Kontingente im Zusammenhang mit Nachrichten in der Amazon Simple Queue Service-Entwicklerrichtlinie. Sie können den Aufbewahrungszeitraum für Nachrichten mithilfe der SetQueueAttributes Amazon SQS-API-Aktion anpassen. Um Ihre Anwendungen widerstandsfähiger zu machen, empfehlen wir Ihnen, die maximale Aufbewahrungsfrist für Queues für unzustellbare Nachrichten auf 14 Tage festzulegen.

Wie werden Nachrichten in eine Queue für unzustellbare Nachrichten verschoben?

Ihre Nachrichten werden mithilfe einer Richtlinie für erneute Ausführung in eine Queue für unzustellbare Nachrichten verschoben. Eine Richtlinie für erneute Ausführung ist ein JSON-Objekt, das auf den ARN der Queue für unzustellbare Nachrichten verweist. Das deadLetterTargetArn-Attribut gibt den ARN an. Der ARN muss auf eine Amazon SQS-Queue in dem AWS-Konto und der Region Ihres Amazon SNS-Abonnement verweisen. Weitere Informationen finden Sie unter Konfigurieren einer Amazon-SNS-Warteschlange für unzustellbare Nachrichten für ein Abonnement.

Das folgende JSON-Objekt ist eine Beispielrichtlinie für eine Richtlinie für erneute Ausführung, die einem SNS-Abonnement zugewiesen ist.

{ "deadLetterTargetArn": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue" }

Wie kann ich Nachrichten aus einer Queue für unzustellbare Nachrichten verschieben?

Sie können Nachrichten auf zwei Arten aus einer Queue für unzustellbare Nachrichten verschieben:

  • Vermeiden Sie Schreiben von Amazon SQS-Verbraucherlogik: legen Sie Ihre Queue für unzustellbare Nachrichten als Ereignisquelle für die Lambda-Funktion fest, um Ihre Queue 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 zum Abrufen, Verarbeiten und Löschen der Nachrichten in der Queue für unzustellbare Nachrichten zu schreiben.

Wie kann ich Queues für unzustellbare Nachrichten überwachen und protokollieren?

Mit Amazon CloudWatch-Metriken können Sie die Queues für unzustellbare Nachrichten, die Ihren Amazon SNS-Abonnements zugeordnet sind, überwachen. Alle Amazon SQS-Queues senden CloudWatch-Metriken in einminütigen Intervallen aus. Weitere Informationen finden Sie unter Verfügbare CloudWatch-Metriken für Amazon SQS im Amazon Simple Queue Service-Entwicklerhandbuch. Alle Amazon SNS-Abonnements mit Queues für unzustellbare Nachrichten geben auch CloudWatch-Metriken aus. Weitere Informationen finden Sie unter Überwachung von Amazon-SNS-Themen mit CloudWatch.

Mithilfe von CloudWatch-Metriken und Alarmen können Sie sich über Aktivitäten in Ihren Queues für unzustellbare Nachrichten benachrichtigen lassen. Wenn Sie beispielsweise erwarten, dass die Queue für unzustellbare Nachrichten immer leer ist, können Sie einen CloudWatch-Alarm für die NumberOfMessagesSent Metrik erstellen. Sie können den Schwellenwert für den Alarm auf 0 festlegen und ein Amazon-SNS-Thema angeben, um benachrichtigt zu werden, wenn der Alarm ausgelöst wird. Dieses Amazon-SNS-Thema kann Ihre Alarmbenachrichtigung an jeden Endpunkttyp (z. B. E-Mail-Adresse, Telefonnummer oder mobile Pager-App) zustellen.

Mit CloudWatch Logs können Sie die Ausnahmen untersuchen, die dazu führen, dass Amazaon-SNS-Zustellungen fehlschlagen, und dass Nachrichten an Queues für unzustellbare Nachrichten gesendet werden. Amazon SNS kann sowohl erfolgreiche als auch fehlgeschlagene Zustellungen in CloudWatch protokollieren. Amazon SNS kann sowohl erfolgreiche als auch fehlgeschlagene Lieferungen in CloudWatch protokollieren. Weitere Informationen finden Sie unter Zustellungsstatus von Amazon SNS Nachrichtenübermittmittungen.