Replay dei messaggi di Amazon SNS per gli abbonati all'argomento FIFO - Amazon Simple Notification Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Replay dei messaggi di Amazon SNS per gli abbonati all'argomento FIFO

Amazon SNS Replay consente agli abbonati agli argomenti di recuperare e reinviare i messaggi archiviati dal Topic Data Store a un endpoint sottoscritto.

  • I messaggi possono essere riprodotti immediatamente dopo la creazione dell'abbonamento.

  • Un messaggio riprodotto mantiene lo stesso contenuto e Timestamp quello originale. MessageId

  • Il messaggio include un Replayed attributo che indica che si tratta di un messaggio riprodotto.

  • Per riprodurre solo messaggi specifici, applica una politica di filtro al tuo abbonamento.

Per ulteriori informazioni sul filtraggio dei messaggi, consulta Filtro dei messaggi riprodotti.

Crea una politica di riproduzione dei messaggi utilizzando il AWS Management Console

Utilizza questa opzione per creare una nuova policy di riproduzione utilizzando la AWS Management Console.

  1. Accedi alla console Amazon SNS.

  2. Scegli una sottoscrizione all'argomento o creane una nuova. Per ulteriori informazioni sulla creazione di sottoscrizioni, consultaCreazione di un abbonamento a un argomento di Amazon SNS.

  3. Per avviare la riproduzione del messaggio, vai al menu a discesa Riproduci e scegli Inizia riproduzione.

  4. Dalla finestra modale Intervallo di tempo di riproduzione, effettua le seguenti selezioni:

    1. Scegli la data e l'ora di inizio della riproduzione: scegli la data (YYYY/MM/DDformato) e l'ora (formato hh:mm:ss 24 ore su 24) da cui desideri iniziare a riprodurre i messaggi archiviati. L'ora di inizio deve essere successiva all'inizio dell'orario di archiviazione approssimativo.

    2. (Facoltativo) Scegli la data e l'ora di fine della riproduzione: scegli la data (YYYY/MM/DDformato) e l'ora (formato hh:mm:ss 24 ore) in cui desideri interrompere la riproduzione dei messaggi archiviati.

    3. Scegli Avvia riproduzione.

  5. (Facoltativo) Per arrestare la riproduzione di un messaggio, vai alla pagina Dettagli sottoscrizione e scegli Interrompi riproduzione dal menu a discesa Riproduci.

  6. (Facoltativo) Per monitorare le metriche di riproduzione dei messaggi dall'interno di questo flusso di lavoro utilizzando, vedi. CloudWatch Monitora le metriche di riproduzione dei messaggi utilizzando Amazon CloudWatch

Visualizzazione e modifica di una policy di riproduzione dei messaggi

Nella pagina Dettagli sottoscrizione puoi eseguire le seguenti operazioni:

  • Per visualizzare lo stato di riproduzione dei messaggi, nel campo Stato riproduzione vengono visualizzati i seguenti valori:

    • Completato: la riproduzione ha correttamente ridistribuito tutti i messaggi e ora distribuisce i messaggi appena pubblicati.

    • In corso: la riproduzione sta attualmente riproducendo i messaggi selezionati.

    • Non riuscito: la riproduzione non è stata completata.

    • In sospeso: lo stato predefinito durante l'avvio della riproduzione.

  • (Facoltativo) Per modificare la policy di riproduzione dei messaggi, vai alla pagina Dettagli sottoscrizione e scegli Interrompi riproduzione dal menu a discesa Riproduci. L'avvio di una riproduzione sostituirà la riproduzione esistente.

Aggiunta di una policy di riproduzione all'abbonamento utilizzando l'API

Per riprodurre i messaggi archiviati, usa l'attributo ReplayPolicy. ReplayPolicy può essere utilizzato con le operazioni API Subscribe e SetSubscriptionAttributes. Questa policy ha i seguenti valori:

  • StartingPoint (Obbligatorio): segnala da dove iniziare a riprodurre i messaggi.

  • EndingPoint (Facoltativo): segnala quando interrompere la riproduzione dei messaggi. Se EndingPoint viene omesso, la riproduzione continuerà fino a quando non verrà raggiunta l'ora corrente.

  • PointType (Obbligatorio): imposta il tipo di punto iniziale e finale. Attualmente, l'unico valore supportato per PointType è Timestamp.

Ad esempio, per ripristinare un errore downstream e inviare nuovamente tutti i messaggi per un periodo di due ore il 1° ottobre 2023, utilizza l'operazione API SetSubscriptionAttributes per impostare una ReplayPolicy come segue:

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

Per riprodurre tutti i messaggi inviati all'argomento a partire dal 1° ottobre 2023 e continuare a ricevere tutti i messaggi appena pubblicati sull'argomento, utilizza l'operazione API SetSubscriptionAttributes per impostare una ReplayPolicy sull'abbonamento nel modo seguente:

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

Per verificare che un messaggio sia stato riprodotto, l'attributo booleano Replayed viene aggiunto a ogni messaggio riprodotto.

Aggiunta di una policy di riproduzione all'abbonamento utilizzando l'SDK

Per utilizzare un AWS SDK, devi configurarlo con le tue credenziali. Per ulteriori informazioni, consulta configShared and credentials files nella AWS SDKs and Tools Reference Guide.

Il seguente esempio di codice mostra come impostare la ReplayPolicy su un abbonamento per recapitare nuovamente i messaggi dall'archivio degli argomenti FIFO di Amazon SNS per una finestra temporale di 2 ore il 1° ottobre 2023.

// 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);

Comprendere il EndingPoint

Quando applichi un ReplayPolicy abbonamento Amazon SNS, il EndingPoint valore è facoltativo. Se non EndingPoint viene fornito alcun valore, la riproduzione inizierà dal valore specificato StartingPoint e continuerà fino al raggiungimento dell'ora corrente, inclusa l'elaborazione dei messaggi appena pubblicati. Una volta recuperato, l'abbonamento funzionerà come un normale abbonamento e riceverà nuovi messaggi man mano che vengono pubblicati.

Se EndingPoint viene specificato un, il servizio riprodurrà i messaggi dall'inizio alla fine EndingPoint e poi StartingPoint si interromperà. Questa azione mette effettivamente in pausa l'abbonamento. Mentre l'abbonamento è in pausa, i messaggi appena pubblicati non verranno recapitati all'endpoint sottoscritto.

Per riprendere il recapito dei messaggi, applicane uno nuovo ReplayPolicy senza specificarne uno EndingPoint e impostalo sul momento desiderato StartingPoint a partire dal quale continuare a ricevere i messaggi. Ad esempio, per riprendere un abbonamento dal punto in cui era terminato un replay precedente, imposta il nuovo su StartingPoint quello fornito in precedenza. EndingPoint

Filtro dei messaggi riprodotti

Il filtraggio dei messaggi di Amazon SNS ti consente di controllare i messaggi riprodotti che Amazon SNS riproduce sull'endpoint dell'abbonato. Quando il filtraggio e l'archiviazione dei messaggi sono entrambi abilitati, Amazon SNS recupera prima il messaggio dall'archivio dati dell'argomento, quindi applica il messaggio alla FilterPolicy dell'abbonamento. Il messaggio viene recapitato all'endpoint sottoscritto quando c'è una corrispondenza, altrimenti il messaggio viene filtrato. Per ulteriori informazioni, consulta Policy di filtro degli abbonamenti Amazon SNS.

Monitora le metriche di riproduzione dei messaggi utilizzando Amazon CloudWatch

Puoi monitorare i messaggi di riproduzione utilizzando Amazon CloudWatch utilizzando le seguenti metriche. Per ricevere notifiche in caso di anomalie nei carichi di lavoro e contribuire a evitare impatti, puoi configurare gli CloudWatch allarmi Amazon in base a questi parametri. Per ulteriori dettagli, consulta Registrazione e monitoraggio in Amazon SNS.

Parametro Descrizione

NumberOfReplayedNotificationsDelivered

Fornisce all'abbonato il numero aggregato di messaggi riprodotti dall'archivio degli argomenti, con una risoluzione di 1 minuto.

NumberOfReplayedNotificationsFailed

Fornisce all'abbonato il numero aggregato di messaggi riprodotti non inviati dall'archivio degli argomenti, con una risoluzione di 1 minuto.