Archiviazione dei messaggi per i proprietari di argomenti 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à.

Archiviazione dei messaggi per i proprietari di argomenti FIFO

L'archiviazione dei messaggi offre la possibilità di archiviare una singola copia di tutti i messaggi pubblicati sull'argomento. Puoi archiviare i messaggi pubblicati all'interno del tuo argomento abilitando la policy di archiviazione dei messaggi sull'argomento, che consente l'archiviazione dei messaggi per tutte le sottoscrizioni collegate a quell'argomento. I messaggi possono essere archiviati da un minimo di un giorno a un massimo di 365 giorni.

Quando si imposta una policy di archiviazione, si applicano costi aggiuntivi. Per informazioni sui prezzi, consulta Prezzi di Amazon SNS.

Creazione di una policy di archiviazione dei messaggi utilizzando la AWS Management Console

Utilizza questa opzione per creare una nuova policy di archiviazione dei messaggi utilizzando la AWS Management Console.

  1. Accedi alla console Amazon SNS.

  2. Scegli un argomento o creane uno nuovo. Per ulteriori informazioni sulla creazione di argomenti, consulta Creare un argomento Amazon SNS.

    Nota

    L'archiviazione e riproduzione dei messaggi di Amazon SNS è disponibile solo per gli argomenti FIFO da applicazione a applicazione (A2A).

  3. Nella pagina Modifica argomento espandi la sezione Policy di archiviazione.

  4. Abilita la funzionalità Policy di archiviazione e inserisci il Numero di giorni per i quali desideri archiviare i messaggi nell'argomento.

  5. Seleziona Salva modifiche.

Per visualizzare, modificare e disattivare una policy relativa all'argomento di archiviazione dei messaggi

  • Nella pagina Dettagli dell'argomento, Policy di conservazione mostra lo stato della policy di archiviazione, incluso il numero di giorni per i quali è stata impostata. Seleziona la scheda Policy di conservazione per visualizzare i seguenti dettagli sull'archivio dei messaggi:

    • Stato: lo stato di archiviazione e riproduzione appare attivo quando viene applicata una policy di archiviazione. Lo stato di archiviazione e riproduzione appare come inattivo quando la policy di archiviazione è impostata su un oggetto JSON vuoto.

    • Periodo di conservazione dei messaggi: il numero di giorni specificato per la conservazione dei messaggi.

    • Data di inizio dell'archiviazione: la data a partire dalla quale gli abbonati possono riprodurre i messaggi.

    • Anteprima JSON: l'anteprima JSON della policy di archiviazione.

  • (Facoltativo) Per modificare una policy di archiviazione, vai alla pagina di riepilogo dell'argomento e scegli Modifica.

  • (Facoltativo) Per disattivare una policy di archiviazione, vai alla pagina di riepilogo dell'argomento e scegli Modifica. Disattiva la policy di archiviazione e scegli Salva modifiche.

  • (Facoltativo) Per eliminare un argomento con una policy di archiviazione, è necessario prima disattivare la policy di archiviazione come descritto in precedenza.

    Importante

    Per evitare eliminazioni accidentali dei messaggi, non puoi eliminare un argomento con una policy di archiviazione dei messaggi attiva. La policy di archiviazione dei messaggi dell'argomento deve essere disattivata prima che l'argomento possa essere eliminato. Quando disattivi una policy di archiviazione dei messaggi, Amazon SNS elimina tutti i messaggi archiviati. Quando si elimina un argomento, le sottoscrizioni vengono rimosse e i messaggi in transito potrebbero non essere recapitati.

Creazione di una policy di archiviazione dei messaggi utilizzando l'API

Per creare una policy di archiviazione dei messaggi utilizzando l'API, devi aggiungere l'attributo ArchivePolicy al tuo argomento. Puoi impostare un ArchivePolicy utilizzando le operazioni API CreateTopic eSetTopicAttributes. ArchivePolicy ha un unico valore, MessageRetentionPeriod, che rappresenta il numero di giorni in cui Amazon SNS conserva i messaggi. Per attivare l'archiviazione dei messaggi per il tuo argomento, imposta MessageRetentionPeriod su un valore intero maggiore di zero. Ad esempio, per conservare i messaggi nell'archivio per 30 giorni, imposta ArchivePolicy su:

{ "ArchivePolicy": { "MessageRetentionPeriod": "30" } }

Per disabilitare l'archiviazione dei messaggi relativi al tuo argomento e cancellare l'archivio, annulla l'impostazione di ArchivePolicy, come segue:

{}

Creazione di una policy di archiviazione dei messaggi utilizzando l'SDK

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

I seguenti esempi di codice mostrano come impostare la ArchivePolicy do un argomento Amazon SNS in modo che mantenga tutti i messaggi pubblicati sull'argomento per 30 giorni.

// Specify the ARN of the Amazon SNS topic to set the ArchivePolicy for. String topicArn = "arn:aws:sns:us-east-2:123456789012:MyArchiveTopic.fifo"; // Set the MessageRetentionPeriod to 30 days for the ArchivePolicy. String archivePolicy = "{\"MessageRetentionPeriod\":\"30\"}"; // Set the ArchivePolicy for the Amazon SNS topic SetTopicAttributesRequest request = new SetTopicAttributesRequest() .withTopicArn(topicArn) .withAttributeName("ArchivePolicy") .withAttributeValue(archivePolicy); sns.setTopicAttributes(request);

Creazione di una policy di archiviazione dei messaggi utilizzando AWS CloudFormation

Per creare una policy di archiviazione mediante AWS CloudFormation consulta AWS::SNS::Topic nella Guida per l'utente di AWS CloudFormation.

Concessione dell'accesso a un archivio crittografato

Prima che un abbonato possa iniziare a riprodurre i messaggi di un argomento crittografato, devi completare al procedura seguente. Poiché i messaggi precedenti vengono riprodotti, è necessario fornire ad Amazon SNS l'accesso Decrypt alla chiave KMS utilizzata per crittografare i messaggi nell'archivio.

  1. Quando esegui la crittografia dei messaggi con una chiave KMS e li archivi all'interno dell'argomento, devi concedere ad Amazon SNS la possibilità di de-crittografare questi messaggi tramite la policy della chiave. Per ulteriori informazioni, consulta Concessione delle autorizzazioni di decrittografia ad Amazon SNS.

  2. Abilitazione di AWS KMS per Amazon SNS. Per ulteriori informazioni, consulta Configurazione delle autorizzazioni per AWS KMS.

Importante

Quando aggiungi le nuove sezioni alla policy della chiave KMS, non modificare le sezioni esistenti nella policy. Se la crittografia è abilitata in un argomento e la chiave KMS è disabilitata o eliminata oppure la policy della chiave KMS non è configurata correttamente per Amazon SNS, Amazon SNS non potrà riprodurre i messaggi ai tuoi abbonati.

Concessione delle autorizzazioni di decrittografia ad Amazon SNS

Affinché Amazon SNS possa accedere ai messaggi crittografati dall'archivio del tuo argomento e riprodurli sugli endpoint sottoscritti, devi abilitare il servizio Amazon SNS per decrittografare questi messaggi.

Di seguito è riportato un esempio di policy necessaria per consentire al principale del servizio Amazon SNS di de-crittografare i messaggi archiviati durante la riproduzione di messaggi cronologici dall'argomento in questione.

{ "Sid": "Allow SNS to decrypt archived messages", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

Monitoraggio delle metriche di archivio dei messaggi utilizzando Amazon CloudWatch

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

Metrica Descrizione

ApproximateNumberOfMessagesArchived

Fornisce al proprietario dell'argomento il numero aggregato di messaggi archiviati nell'archivio degli argomenti, con una risoluzione di 60 minuti.

ApproximateNumberOfBytesArchived

Fornisce al proprietario dell'argomento il numero aggregato di byte archiviati in tutti i messaggi dell'archivio degli argomenti, con una risoluzione di 60 minuti.

NumberOfMessagesArchiveProcessing

Fornisce al proprietario dell'argomento il numero di messaggi salvati nell'archivio degli argomenti durante l'intervallo con una risoluzione di 1 minuto.

NumberOfBytesArchiveProcessing

Fornisce al proprietario dell'argomento il numero aggregato di messaggi salvati nell'archivio degli argomenti durante l'intervallo con una risoluzione di 1 minuto.

L'API GetTopicAttributes ha una proprietà BeginningArchiveTime che rappresenta il timestamp più vecchio in base al quale un abbonato può avviare una riproduzione. Di seguito è riportato un esempio di risposta per questa operazione API:

{ "ArchivePolicy": { "MessageRetentionPeriod": "<integer>" }, "BeginningArchiveTime": "<timestamp>", ... }