Wiederholung von SNS Amazon-Nachrichten für FIFO Themenabonnenten - 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.

Wiederholung von SNS Amazon-Nachrichten für FIFO Themenabonnenten

Mit Amazon SNS Replay können Themenabonnenten archivierte Nachrichten aus dem Themendatenspeicher abrufen und sie erneut an einen abonnierten Endpunkt senden (oder erneut abspielen). Nachrichten können wiederholt werden, sobald das Abonnement erstellt wurde. Eine wiederholt Nachricht hat denselben Inhalt und denselben Inhalt, MessageId und Timestamp, wie die Originalkopie und enthält außerdem das Attribut Replayed, anhand dessen Sie erkennen können, dass es sich um eine wiederholte Nachricht handelt. Um nur ausgewählte Nachrichten zu wiederholen, können Sie Ihrem Abonnement eine Filterrichtlinie hinzufügen. Weitere Informationen zum Filtern von Nachrichten finden Sie unter Filtert wiederholte Nachrichten.

Erstellen Sie eine Richtlinie zur Nachrichtenwiedergabe mit dem AWS Management Console

Verwenden Sie diese Option zum Erstellen einer neuen Wiederholungsrichtlinie mit AWS Management Console.

  1. Melden Sie sich bei der SNSAmazon-Konsole an.

  2. Wählen Sie ein Themenabonnement aus oder erstellen Sie ein neues Thema. Weitere Informationen zum Erstellen von Abonnements finden Sie unter Ein Abonnement für ein SNS Amazon-Thema erstellen.

  3. Um die Nachrichtenwiederholung zu starten, rufen Sie das Dropdown-Menü Replay (Wiederholung) auf und wählen Sie Start replay (Wiederholung starten).

  4. Treffen Sie im Modal Replay timeframe (Zeitrahmen für Wiederholung) die folgenden Auswahlen:

    1. Startdatum und Uhrzeit der Wiedergabe wählen — Wählen Sie das Datum (YYYY/MM/DDFormat) und die Uhrzeit (24-Stunden-Format hh:mm:ss) aus, ab dem Sie mit der Wiedergabe archivierter Nachrichten beginnen möchten. Die Startzeit muss nach Beginn der ungefähren Archivierungszeit liegen.

    2. (Optional) Wählen Sie Datum und Uhrzeit für das Ende der Wiedergabe — Wählen Sie das Datum (YYYY/MM/DDFormat) und die Uhrzeit (24-Stunden-Format hh:mm:ss) aus, zu der Sie die Wiedergabe archivierter Nachrichten beenden möchten.

    3. Wählen Sie Start replay „Wiederholung starten“.

  5. (Optional) Um die Wiedergabe einer Nachricht zu beenden, rufen Sie die Seite mit den Subscription details (Abonnementdetails) auf und wählen Sie im Dropdown-Menü Replay (Wiederholung) die Option Stop replay (Wiederholung beenden) aus.

  6. (Optional) Informationen zur Überwachung der Nachrichtenwiedergabe-Metriken innerhalb dieses Workflows mithilfe von finden Sie unter. CloudWatch Überwachen Sie die Messdaten zur Nachrichtenwiedergabe mit Amazon CloudWatch

Informationen zum Anzeigen und Bearbeiten einer Nachrichtenwiederholungsrichtlinie

Auf der Seite Subscription details (Abonnementdetails) können Sie die folgenden Aktionen ausführen:

  • Um den Wiederholungsstatus der Nachricht anzuzeigen, werden im Feld Replay status (Wiederholungsstatus) die folgenden Werte angezeigt:

    • Completed (Abgeschlossen) – Die Wiederholung hat alle Nachrichten erfolgreich erneut zugestellt und stellt jetzt neu veröffentlichte Nachrichten zu.

    • In progress (In Bearbeitung) – Die Wiederholung wiederholt derzeit die ausgewählten Nachrichten.

    • Failed (Fehlgeschlagen) – Die Wiederholung konnte nicht abgeschlossen werden.

    • Pending (Ausstehend) – Der Standardstatus, während die Wiederholung gestartet wird.

  • (Optional) Um eine Nachrichtenwiederholungsrichtlinie zu ändern, rufen Sie die Seite Subscription details (Abonnementdetails) auf und wählen Sie im Dropdown-Menü Replay (Wiederholung) die Option Start replay (Wiederholung starten) aus. Durch das Starten einer Wiederholung wird die bestehende Wiederholung ersetzt.

Fügen Sie dem Abonnement eine Wiedergaberichtlinie hinzu, indem Sie API

Verwenden Sie das AttributReplayPolicy, um archivierte Nachrichten erneut abzuspielen. ReplayPolicykann mit den SetSubscriptionAttributes API Aktionen Subscribe und verwendet werden. Diese Richtlinie hat folgende Werte:

  • StartingPoint (Obligatorisch) – Zeigt an, ab welchem Punkt die Wiederholung von Nachrichten gestartet werden soll.

  • EndingPoint(Optional) – Zeigt an, wann die Nachrichtenwiederholung beendet werden soll. Wenn EndingPoint weggelassen wird, wird die Wiederholung fortgesetzt, bis die aktuelle Uhrzeit erreicht ist.

  • PointType (Obligatorisch) – Legt den Typ der Start- und Endpunkte fest. Derzeit wird Timestamp als einziger Wert für PointType unterstützt.

Um beispielsweise nach einem Downstream-Ausfall eine Wiederherstellung durchzuführen und alle Nachrichten für einen Zeitraum von zwei Stunden am 1. Oktober 2023 erneut zu senden, verwenden Sie die SetSubscriptionAttributes API Aktion, um a ReplayPolicy wie folgt festzulegen:

{ "PointType":"Timestamp", "StartingPoint":"2023-10-01T10:00:00.000Z", "EndingPoint":"2023-10-01T12:00:00.000Z" }

Um alle Nachrichten, die am 1. Oktober 2023 an das Thema gesendet wurden, erneut abzuspielen und weiterhin alle neu veröffentlichten Nachrichten zu Ihrem Thema zu erhalten, verwenden Sie die SetSubscriptionAttributes API Aktion, um Ihr Abonnement wie ReplayPolicy folgt zu kennzeichnen:

{ "PointType":"Timestamp", "StartingPoint":"2023-10-01T00:00:00.000Z" }

Um zu überprüfen, ob eine Nachricht wiederholt wurde, wird jeder wiedergegebenen Nachricht das boolesche Attribut Replayed hinzugefügt.

Fügen Sie dem Abonnement eine Wiederholungsrichtlinie hinzu, indem Sie SDK

Um eine zu verwenden AWS SDK, müssen Sie sie mit Ihren Anmeldeinformationen konfigurieren. Weitere Informationen finden Sie unter Geteilte credentials Dateien config und Dateien im AWS SDKsReferenzhandbuch zu Tools.

Das folgende Codebeispiel zeigt, wie Sie ReplayPolicy bei einem Abonnement festlegen, dass Nachrichten aus dem Archiv des SNS FIFO Amazon-Themas für ein 2-stündiges Zeitfenster am 1. Oktober 2023 erneut zugestellt werden.

// Specify the ARN of the Amazon SNS subscription to initiate the ReplayPolicy on. String subscriptionArn = "arn:aws:sns:us-east-2:123456789012:MyArchiveTopic.fifo:1d2a3e9d-7f2f-447c-88ae-03f1c68294da"; // Set the ReplayPolicy to replay messages from the topic's archive // for a 2 hour time period on October 1st 2023 between 10am and 12pm UTC. String replayPolicy = "{\"PointType\":\"Timestamp\",\"StartingPoint\":\"2023-10-01T10:00:00.000Z\",\"EndingPoint\":\"2023-10-01T12:00:00.000Z\"}"; // Set the ArchivePolicy for the Amazon SNS topic SetSubscriptionAttributesRequest request = new SetSubscriptionAttributesRequest() .withSubscriptionArn(subscriptionArn) .withAttributeName("ReplayPolicy") .withAttributeValue(replayPolicy); sns.setSubscriptionAttributes(request);

Verstehen der EndingPoint

Wenn Sie ein ReplayPolicy SNS Abonnement bei Amazon beantragen, ist der EndingPoint Wert optional. Wenn kein EndingPoint Wert angegeben ist, beginnt die Wiedergabe an der angegebenen Uhrzeit StartingPoint und wird fortgesetzt, bis die aktuelle Uhrzeit erreicht ist, einschließlich der Verarbeitung neu veröffentlichter Nachrichten. Sobald das Abonnement abgeschlossen ist, funktioniert es wie ein reguläres Abonnement und empfängt neue Nachrichten, sobald sie veröffentlicht werden.

Wenn ein angegeben EndingPoint ist, spielt der Dienst Nachrichten von StartingPoint bis zu erneut ab EndingPoint und stoppt dann. Durch diese Aktion wird das Abonnement effektiv angehalten. Solange das Abonnement pausiert ist, werden neu veröffentlichte Nachrichten nicht an den abonnierten Endpunkt zugestellt.

Um die Nachrichtenzustellung wieder aufzunehmen, wenden Sie eine neue an, ReplayPolicy ohne eine anzugebenEndingPoint, und legen Sie StartingPoint den gewünschten Zeitpunkt fest, ab dem weiterhin Nachrichten empfangen werden sollen. Um beispielsweise ein Abonnement an der Stelle fortzusetzen, an der eine vorherige Wiedergabe beendet wurde, setzen Sie das neue Abonnement StartingPoint auf den zuvor bereitgestellten EndingPoint Wert.

Filtert wiederholte Nachrichten

Mit der SNS Amazon-Nachrichtenfilterung können Sie die wiedergegebenen Nachrichten steuern, die Amazon an Ihren Abonnentenendpunkt SNS wiedergibt. Wenn sowohl Nachrichtenfilterung als auch Nachrichtenarchivierung aktiviert sind, ruft Amazon die Nachricht SNS zunächst aus dem Datenspeicher des Themas ab und ordnet sie dann dem des FilterPolicy Abonnements zu. Die Nachricht wird an den abonnierten Endpunkt übermittelt, wenn eine Übereinstimmung vorliegt, andernfalls wird die Nachricht herausgefiltert. Weitere Informationen finden Sie unter Richtlinien Amazon SNS Amazon-Abonnementfilter.

Überwachen Sie die Messdaten zur Nachrichtenwiedergabe mit Amazon CloudWatch

Sie können Replay-Nachrichten mithilfe von Amazon CloudWatch anhand der folgenden Metriken überwachen. Um über Anomalien in Ihren Workloads informiert zu werden und Auswirkungen zu vermeiden, können Sie CloudWatch Amazon-Alarme für diese Metriken konfigurieren. Weitere Details finden Sie unter Protokollierung und Überwachung in Amazon SNS.

Metrik Beschreibung

NumberOfReplayedNotificationsDelivered

Nennt dem Suscriber die Gesamtanzahl der aus dem Themenarchiv wiederholten Nachrichten mit einer Auflösung von 1 Minute.

NumberOfReplayedNotificationsFailed

Nennt dem Suscriber die Gesamtanzahl der aus dem wiederholten Nachrichten mit einer Auflösung von 1 Minute, die nicht aus dem Themenarchiv zugestellt werden konnten.