Archivage des messages Amazon SNS pour les propriétaires de rubriques FIFO - Amazon Simple Notification Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Archivage des messages Amazon SNS pour les propriétaires de rubriques FIFO

L'archivage des messages permet d'archiver une copie unique de tous les messages publiés dans votre rubrique. Vous pouvez stocker les messages publiés dans votre rubrique en activant la politique d'archivage des messages au niveau de la rubrique. L'archivage des messages est alors activé pour tous les abonnements liés à cette rubrique. Les messages peuvent être archivés au minimum un jour et au maximum 365 jours.

La définition d'une politique d'archivage entraîne des frais supplémentaires. Pour en savoir plus sur la tarification, consultez Tarification Amazon SNS.

Créez une politique d'archivage des messages à l'aide du AWS Management Console

Cette option vous permet de créer une politique d'archivage des messages à l'aide de la AWS Management Console.

  1. Connectez-vous à la console Amazon SNS.

  2. Choisissez une rubrique ou créez-en une. Pour en savoir plus sur la création de rubriques, consultez Création d'une rubrique Amazon SNS.

    Note

    L'archivage et la rediffusion des messages Amazon SNS ne sont disponibles que pour les rubriques FIFO application-to-application (A2A).

  3. Sur la page Modifier la rubrique, développez la section Politique d'archivage.

  4. Activez la fonctionnalité Politique d'archivage, puis saisissez le nombre de jours durant lesquels les messages de la rubrique doivent être archivés.

  5. Sélectionnez Enregistrer les modifications.

Pour afficher, modifier et désactiver une politique de rubrique relative à l'archivage des messages

  • Sur la page Détails de la rubrique, Politique de conservation indique le statut de la politique d'archivage, y compris le nombre de jours pour lequel elle est définie. Sélectionnez l'onglet Politique d'archivage pour afficher les détails d'archivage des messages suivants :

    • Statut : le statut d'archivage-relecture indique actif lorsqu'une politique d'archivage est appliquée. Le statut d'archivage-relecture indique inactif lorsque la politique d'archivage est définie sur un objet JSON vide.

    • Période de conservation des messages : nombre de jours spécifié pour la conservation des messages.

    • Date de début de l'archivage : date à partir de laquelle les abonnés peuvent relire les messages.

    • Aperçu JSON : aperçu JSON de la politique d'archivage.

  • (Facultatif) Pour modifier une politique d'archivage, accédez à la page récapitulative de la rubrique et sélectionnez Modifier.

  • (Facultatif) Pour désactiver une politique d'archivage, accédez à la page récapitulative de la rubrique et sélectionnez Modifier. Désactivez la Politique d'archivage et sélectionnez Enregistrer les modifications.

  • (Facultatif) Pour supprimer une rubrique assortie d'une politique d'archivage, vous devez d'abord désactiver la politique d'archivage comme décrit précédemment.

    Important

    Pour éviter les suppressions accidentelles de messages, vous ne pouvez pas supprimer une rubrique assortie d'une politique d'archivage des messages active. La politique d'archivage des messages de la rubrique doit être désactivée avant de pouvoir supprimer la rubrique. Lorsque vous désactivez une politique d'archivage des messages, Amazon SNS supprime tous les messages archivés. Lorsque vous supprimez une rubrique, les abonnements sont supprimés et la livraison des messages en transit risque d'échouer.

Création d'une politique d'archivage des messages à l'aide de l'API

Pour créer une politique d'archivage des messages à l'aide de l'API, vous devez ajouter l'attribut ArchivePolicy à votre rubrique. Vous pouvez définir un attribut ArchivePolicy à l'aide des actions d'API CreateTopic et SetTopicAttributes. ArchivePolicy présente une seule valeur, MessageRetentionPeriod, qui représente le nombre de jours durant lesquels Amazon SNS conserve les messages. Pour activer l'archivage des messages pour votre rubrique, attribuez à MessageRetentionPeriod une valeur entière supérieure à zéro. Par exemple, pour conserver les messages de votre archive pendant 30 jours, définissez l'attribut ArchivePolicy comme suit :

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

Pour désactiver l'archivage des messages pour votre rubrique et effacer l'archive, annulez la définition de ArchivePolicy comme suit :

{}

Création d'une politique d'archivage des messages à l'aide du SDK

Pour utiliser un AWS SDK, vous devez le configurer avec vos informations d'identification. Pour plus d'informations, consultez la section Shared config and credentials files dans le guide de référence AWS SDKs and Tools.

L'exemple de code suivant montre comment définir l'attribut ArchivePolicy pour une rubrique Amazon SNS de sorte que tous les messages publiés dans la rubrique soient conservés pendant 30 jours.

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

Créez une politique d'archivage des messages à l'aide de AWS CloudFormation

Pour créer une politique d'archivage à l'aide de la AWS CloudFormation section AWS::SNS::Topicdu Guide de AWS CloudFormation l'utilisateur.

Autorisation d'accès à une archive chiffrée

Pour permettre à un abonné de commencer à relire les messages d'une rubrique chiffrée, vous devez d'abord effectuer les tâches suivantes. Sachant que des messages anciens sont relus, Amazon SNS doit obtenir un accès Decrypt à la clé KMS qui a servi à chiffrer les messages dans l'archive.

  1. Lorsque vous chiffrez des messages avec une clé KMS et que vous les stockez dans la rubrique, vous devez accorder à Amazon SNS la possibilité de déchiffrer ces messages via la stratégie de clé. Pour en savoir plus, consultez Octroi d'autorisations de déchiffrement à Amazon SNS.

  2. Activez AWS KMS pour Amazon SNS. Pour en savoir plus, consultez Configuration des AWS KMS autorisations.

Important

Lorsque vous ajoutez les nouvelles sections à votre politique de clé KMS, ne changez pas les sections existantes dans la politique. Si le chiffrement est activé au niveau d'une rubrique et que la clé KMS est désactivée ou supprimée, ou encore que la stratégie de clé KMS n'est pas correctement configurée pour Amazon SNS, Amazon SNS ne peut pas relire les messages pour vos abonnés.

Octroi d'autorisations de déchiffrement à Amazon SNS

Pour permettre à Amazon SNS d'accéder aux messages chiffrés depuis l'archive de votre rubrique et de les relire sur les points de terminaison abonnés, vous devez autoriser le principal du service Amazon SNS à déchiffrer ces messages.

Voici un exemple de politique dont a besoin le principal du service Amazon SNS pour déchiffrer les messages stockés lors de la relecture des messages historiques de votre rubrique.

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

Surveillez les statistiques d'archivage des messages à l'aide d'Amazon CloudWatch

Vous pouvez surveiller les messages archivés à l'aide d'Amazon CloudWatch à l'aide des indicateurs suivants. Pour être informé des anomalies dans vos charges de travail et éviter tout impact, vous pouvez configurer les CloudWatch alarmes Amazon sur ces métriques. Pour en savoir plus, consultez Journalisation et surveillance dans Amazon SNS.

Métrique Description

ApproximateNumberOfMessagesArchived

Indique au propriétaire de la rubrique le nombre total de messages archivés dans l'archive de la rubrique, selon une résolution de 60 minutes.

ApproximateNumberOfBytesArchived

Indique au propriétaire de la rubrique le nombre total d'octets archivés pour tous les messages contenus dans l'archive de la rubrique, selon une résolution de 60 minutes.

NumberOfMessagesArchiveProcessing

Indique au propriétaire de la rubrique le nombre de messages enregistrés dans l'archive de la rubrique sur la période, selon une résolution d'une minute.

NumberOfBytesArchiveProcessing

Indique au propriétaire de la rubrique le nombre total d'octets enregistrés dans l'archive de la rubrique sur la période, selon une résolution d'une minute.

L'API GetTopicAttributes possède une propriété BeginningArchiveTime qui représente l'horodatage le plus ancien à partir duquel un abonné peut lancer une relecture. Voici un exemple de réponse pour cette action d'API :

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