Warteschlangen für SNS unzustellbare Briefe bei Amazon - 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.

Warteschlangen für SNS unzustellbare Briefe bei Amazon

Eine Warteschlange für unzustellbare Briefe ist eine SQS Amazon-Warteschlange, die ein SNS Amazon-Abonnement für Nachrichten verwenden kann, die nicht erfolgreich an Abonnenten zugestellt werden können. 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 Konfiguration einer Amazon-Warteschlange für SNS unzustellbare Briefe für ein Abonnement und Wiederholte Versuche mit der SNS Amazon-Nachrichtenzustellung.

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

  • Für ein FIFOThema können Sie eine SQS Amazon-Warteschlange als Warteschlange für eingehende Briefe für das SNS Amazon-Abonnement verwenden. FIFOThemenabonnements verwenden FIFO Warteschlangen, und Standardthemenabonnements verwenden Standardwarteschlangen.

  • Um eine verschlüsselte SQS Amazon-Warteschlange als Warteschlange für eingehende Briefe zu verwenden, müssen Sie eine benutzerdefinierte KMS mit einer Schlüsselrichtlinie verwenden, die dem Amazon SNS Service Principal Zugriff AWS KMS API auf Aktionen gewährt. Weitere Informationen finden Sie Sicherung von SNS Amazon-Daten mit serverseitiger Verschlüsselung in diesem Handbuch und unter Schützen von SQS Amazon-Daten mit serverseitiger Verschlüsselung (SSE) und AWS KMS im Amazon Simple Queue Service Developer Guide.

Warum schlagen Nachrichtenzustellungen fehl?

Im Allgemeinen schlägt die Nachrichtenzustellung fehl, wenn Amazon aufgrund eines client- oder serverseitigen Fehlers nicht auf einen abonnierten Endpunkt zugreifen SNS kann. Wenn Amazon einen clientseitigen Fehler SNS erhält oder weiterhin einen serverseitigen Fehler für eine Nachricht erhält, die über die in der entsprechenden Wiederholungsrichtlinie angegebene Anzahl von Wiederholungsversuchen hinausgeht, verwirft Amazon die Nachricht — es sei denn, dem Abonnement ist eine SNS Warteschlange mit unerlaubten Briefen zugeordnet. Fehlgeschlagene Zustellungen ändern den Status Ihrer Abonnements nicht. Weitere Informationen finden Sie unter Wiederholte Versuche mit der SNS Amazon-Nachrichtenzustellung.

Client-seitige Fehler

Clientseitige Fehler können auftreten, wenn Amazon veraltete SNS Abonnement-Metadaten hat. Diese Fehler treten häufig auf, wenn ein Eigentümer den Endpunkt löscht (z. B. eine Lambda-Funktion, die ein SNS Amazon-Thema abonniert hat) oder wenn ein Eigentümer die mit dem abonnierten Endpunkt verknüpfte Richtlinie so ändert, dass Amazon SNS keine Nachrichten an den Endpunkt senden kann. Amazon versucht SNS nicht, die Nachrichtenzustellung zu wiederholen, die aufgrund eines clientseitigen Fehlers fehlschlägt.

Serverseitige Fehler

Serverseitige Fehler können auftreten, wenn das für den abonnierten Endpunkt zuständige System nicht mehr verfügbar ist oder eine Ausnahme zurückgibt, die darauf hinweist, dass es eine gültige Anfrage von Amazon nicht bearbeiten kann. SNS Wenn serverseitige Fehler auftreten, SNS wiederholt Amazon die fehlgeschlagenen Lieferungen mit einer linearen oder exponentiellen Backoff-Funktion. Bei serverseitigen Fehlern, die durch AWS verwaltete Endgeräte verursacht werden, die von Amazon SQS oder unterstützt werden AWS Lambda, SNS wiederholt Amazon die Lieferung innerhalb von 23 Tagen bis zu 100.015 Mal.

Vom Kunden verwaltete Endgeräte (wieHTTP,SMTP, oder Mobile Push) können ebenfalls SMS serverseitige Fehler verursachen. Amazon SNS versucht erneut, auch an diese Arten von Endpunkten zu liefern. HTTPEndgeräte unterstützen zwar vom Kunden definierte Richtlinien für Wiederholungsversuche, Amazon SNS legt für, und mobile Push-Endpunkte eine interne Richtlinie für SMTP Wiederholungsversuche bei Zustellung von Sendungen innerhalb von 6 Stunden auf 50 Mal fest. SMS

Funktionsweise von Queues für unzustellbare Nachrichten

An ein SNS Amazon-Abonnement (und nicht an ein Thema) wird eine Warteschlange für unzustellbare Briefe angehängt, da Nachrichtenzustellungen auf Abonnementebene erfolgen. Auf diese Weise können Sie den ursprünglichen Zielendpunkt für jede Nachricht leichter identifizieren.

Eine Warteschlange für unzustellbare Briefe im Zusammenhang mit einem SNS Amazon-Abonnement ist eine normale SQS Amazon-Warteschlange. 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 die Aufbewahrungsfrist für Nachrichten mithilfe der SQS SetQueueAttributes API Amazon-Aktion ändern. 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 Redrive-Richtlinie ist ein JSON Objekt, das sich auf die Warteschlange für ARN unzustellbare Briefe bezieht. Das deadLetterTargetArn Attribut spezifiziert die. ARN Sie ARN müssen auf eine SQS Amazon-Warteschlange in derselben AWS-Konto Region verweisen wie Ihr SNS Amazon-Abonnement. Weitere Informationen finden Sie unter Konfiguration einer Amazon-Warteschlange für SNS unzustellbare Briefe für ein Abonnement.

Das folgende JSON Objekt ist ein Beispiel für eine Redrive-Richtlinie, die einem SNS Abonnement beigefügt 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 es, SQS Amazon-Verbraucherlogik zu schreiben — Richten Sie Ihre Warteschlange für unzustellbare Briefe als Ereignisquelle für die Lambda-Funktion ein, um Ihre Warteschlange für unzustellbare Briefe zu leeren.

  • SQSAmazon-Verbraucherlogik schreiben — Verwenden Sie Amazon SQSAPI, oder AWS SDK, AWS CLI um eine benutzerdefinierte Verbraucherlogik für das Abfragen, Verarbeiten und Löschen der Nachrichten in der Warteschlange für unzustellbare Briefe zu schreiben.

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-Abonnements zu überwachen. SNS Alle SQS Amazon-Warteschlangen geben in Intervallen von einer Minute CloudWatch Metriken aus. Weitere Informationen finden Sie unter Verfügbare CloudWatch Metriken für Amazon SQS im Amazon Simple Queue Service Developer Guide. Alle SNS Amazon-Abonnements mit Warteschlangen für unzustellbare Briefe geben ebenfalls Messwerte aus. CloudWatch Weitere Informationen finden Sie unter Überwachung von SNS Amazon-Themen mit CloudWatch.

Sie können Metriken und Alarme verwenden, um über Aktivitäten in Ihren Warteschlangen für unzustellbare Briefe informiert zu werden. CloudWatch Das Einrichten eines Alarms für die NumberOfMessagesSent Metrik ist nicht geeignet, da diese Metrik keine Nachrichten erfasst, die aufgrund fehlgeschlagener DLQ Verarbeitungsversuche an a gesendet wurden. Verwenden Sie stattdessen die ApproximateNumberOfMessagesVisible Metrik, die alle Nachrichten erfasst, die derzeit in der verfügbar sindDLQ, einschließlich der Nachrichten, die aufgrund von Verarbeitungsfehlern verschoben wurden.

Beispiel für eine CloudWatch Alarmeinrichtung
  1. Erstellen Sie einen CloudWatchAlarm für die ApproximateNumberOfMessagesVisible Metrik.

  2. Setzen Sie den Alarmschwellenwert auf 1 (oder einen anderen geeigneten Wert, der Ihren Erwartungen und dem DLQ Traffic entspricht).

  3. Geben Sie ein SNS Amazon-Thema an, um benachrichtigt zu werden, wenn der Alarm ausgelöst wird. Dieses SNS Amazon-Thema kann Ihre Alarmbenachrichtigung an jeden Endpunkttyp senden (z. B. eine E-Mail-Adresse, Telefonnummer oder mobile Pager-App).

Sie können CloudWatch Logs verwenden, um die Ausnahmen zu untersuchen, die dazu führen, dass SNS Amazon-Lieferungen fehlschlagen, und um zu untersuchen, ob Nachrichten in Warteschlangen mit unzustellbaren Briefen landen. Amazon SNS kann sowohl erfolgreiche als auch fehlgeschlagene Lieferungen protokollieren CloudWatch. Weitere Informationen finden Sie unter Attribute der SNS mobilen Amazon-App.