Riproduzione dei SNS messaggi Amazon per gli abbonati all'FIFOargomento - 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à.

Riproduzione dei SNS messaggi Amazon per gli abbonati all'FIFOargomento

Amazon SNS replay consente agli abbonati agli argomenti di recuperare i messaggi archiviati dal Topic Data Store e di reinviarli (o riascoltarli) a un endpoint sottoscritto. I messaggi possono essere riprodotti non appena viene creato l'abbonamento. Un messaggio riprodotto ha lo stesso contenuto, MessageId e Timestamp della copia originale e contiene anche l'attributo Replayed, che consente di identificare che si tratta di un messaggio riprodotto. Per riprodurre solo messaggi selezionati, puoi aggiungere una policy 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 AWS Management Console

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

  1. Accedi alla SNSconsole Amazon.

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

  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 24 ore hh:mm:ss) 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.

Aggiungi una politica di riproduzione all'abbonamento utilizzando il API

Per riprodurre i messaggi archiviati usa l'attributo. ReplayPolicy ReplayPolicypuò essere usato con le azioni Subscribe and SetSubscriptionAttributesAPI. 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 a valle e inviare nuovamente tutti i messaggi per un periodo di due ore il 1° ottobre 2023, utilizza l'SetSubscriptionAttributesAPIazione per impostare a 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 nuovi messaggi pubblicati sull'argomento, utilizza l'SetSubscriptionAttributesAPIazione per impostare un ReplayPolicy 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.

Aggiungi una politica di riproduzione all'abbonamento utilizzando il SDK

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

Il seguente esempio di codice mostra come impostare un abbonamento per recapitare nuovamente i messaggi dall'archivio dell'SNSFIFOargomento Amazon per una finestra temporale di 2 ore il 1° ottobre 2023. ReplayPolicy

// 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 SNS abbonamento Amazon, 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

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

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.