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.
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 erhalten 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 SNS-Abonnement und die Amazon SQS SQS-Warteschlange müssen sich unter demselben AWS Konto und derselben Region befinden.
-
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.
Um eine verschlüsselte Amazon SQS SQS-Warteschlange als Warteschlange für unzustellbare Briefe zu verwenden, müssen Sie ein benutzerdefiniertes KMS mit einer Schlüsselrichtlinie verwenden, die dem Amazon SNS SNS-Service Principal Zugriff auf API-Aktionen gewährt. AWS KMS Weitere Informationen finden Sie unter Sicherung von Amazon SNS SNS-Daten mit serverseitiger Verschlüsselung in dieser Anleitung und Schutz von Amazon SQS Daten mithilfe serverseitiger Verschlüsselung (SSE) und AWS 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 AWS verwaltete Endgeräte verursacht werden, die von Amazon SQS oder Amazon SQS unterstützt werden AWS Lambda, versucht Amazon SNS innerhalb von 23 Tagen bis zu 100.015 Mal, die Zustellung erneut.
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 SQS-Warteschlange verweisen, die sich in derselben AWS-Konto Region wie Ihr Amazon SNS SNS-Abonnement befindet. 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 SQS-Verbraucherlogik schreiben — Verwenden Sie die Amazon SQS SQS-API, das AWS SDK oder schreiben Sie eine benutzerdefinierte Verbraucherlogik für das Abfragen, Verarbeiten und Löschen der Nachrichten in der Warteschlange für AWS CLI unzustellbare Briefe.
Wie kann ich Queues für unzustellbare Nachrichten überwachen und protokollieren?
Sie können CloudWatch Amazon-Metriken verwenden, um Warteschlangen für unzustellbare Briefe im Zusammenhang mit Ihren Amazon SNS-Abonnements zu überwachen. Alle Amazon SQS SQS-Warteschlangen geben in Intervallen von einer CloudWatch Minute Metriken aus. Weitere Informationen finden Sie unter Verfügbare CloudWatch Metriken für Amazon SQS im Amazon Simple Queue Service Developer Guide. Alle Amazon SNS SNS-Abonnements mit Warteschlangen für unzustellbare Briefe senden ebenfalls Metriken aus. CloudWatch Weitere Informationen finden Sie unter Überwachung von Amazon SNS SNS-Themen mit CloudWatch.
Um über Aktivitäten in Ihren Warteschlangen für unzustellbare Briefe informiert zu werden, können Sie Metriken und Alarme verwenden. CloudWatch Das Einrichten eines Alarms für die NumberOfMessagesSent
Metrik ist nicht geeignet, da diese Metrik keine Nachrichten erfasst, die aufgrund fehlgeschlagener Verarbeitungsversuche an eine DLQ gesendet wurden. Verwenden Sie stattdessen die ApproximateNumberOfMessagesVisible
Metrik, die alle Nachrichten erfasst, die derzeit in der DLQ verfügbar sind, einschließlich der Nachrichten, die aufgrund von Verarbeitungsfehlern verschoben wurden.
Beispiel für eine CloudWatch Alarmeinrichtung
-
Erstellen Sie einen CloudWatchAlarm für die
ApproximateNumberOfMessagesVisible
Metrik. -
Setzen Sie den Alarmschwellenwert auf 1 (oder einen anderen geeigneten Wert, der Ihren Erwartungen und dem DLQ-Verkehr entspricht).
-
Geben Sie ein Amazon SNS SNS-Thema an, 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.
Mithilfe von CloudWatch Protokollen können Sie die Ausnahmen untersuchen, die dazu führen, dass Amazon SNS SNS-Lieferungen fehlschlagen und Nachrichten an Warteschlangen für unzustellbare Nachrichten gesendet werden. Amazon SNS kann sowohl erfolgreiche als auch fehlgeschlagene Lieferungen protokollieren. CloudWatch Weitere Informationen finden Sie unter Attribute der mobilen Amazon SNS SNS-App.