Archivo de mensajes de Amazon SNS para propietarios de temas FIFO - Amazon Simple Notification Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Archivo de mensajes de Amazon SNS para propietarios de temas FIFO

El archivo de mensajes proporciona la posibilidad de archivar una sola copia de todos los mensajes publicados en el tema. Puede almacenar los mensajes publicados en el tema habilitando la política de archivo de mensajes correspondiente en el tema, que permite archivar los mensajes de todas las suscripciones vinculadas a ese tema. Los mensajes se pueden archivar durante un mínimo de un día y un máximo de 365 días.

Se aplican cargos adicionales al establecer una política de archivo. Para obtener información acerca de los precios, consulte Precios de Amazon SNS.

Crea una política de archivado de mensajes mediante el AWS Management Console

Utilice esta opción para crear una nueva política de archivo de mensajes con la AWS Management Console.

  1. Inicie sesión en la consola de Amazon SNS.

  2. Elija un tema o cree uno nuevo. Para obtener más información acerca de la creación de temas, consulte Creación de un tema de Amazon SNS.

    nota

    El archivado y la reproducción de mensajes de Amazon SNS solo están disponibles para temas de FIFO application-to-application (A2A).

  3. En la página Editar tema, expanda la sección Política de archivo.

  4. Habilite la característica de política de archivo e ingrese el número de días durante los que desea archivar los mensajes en el tema.

  5. Elija Guardar cambios.

Para consultar, editar y desactivar una política de temas de archivo de mensajes

  • En la página de Detalles del tema, la Política de retención muestra el estado de la política de archivo, incluida la cantidad de días para los que está configurada. Seleccione la pestaña Política de archivo para ver los siguientes detalles del archivo de mensajes:

    • Estado: el estado de archivo y reproducción aparece como activo cuando se aplica una política de archivo. El estado de archivo y reproducción aparece como inactivo cuando la política de archivo se establece en un objeto JSON vacío.

    • Periodo de retención de mensajes: el número de días especificado para la retención de mensajes.

    • Fecha de inicio del archivo: fecha a partir de la cual los suscriptores pueden reproducir los mensajes.

    • Vista previa en JSON: la vista previa en JSON de la política de archivo.

  • (Opcional) Para editar una política de archivo, vaya a la página de resumen del tema y elija Editar.

  • (Opcional) Para desactivar una política de archivo, vaya a la página de resumen del tema y elija Editar. Desactive la política de archivo y elija Guardar cambios.

  • (Opcional) Para eliminar un tema con una política de archivo, primero debe desactivar la política de archivo tal y como se describió anteriormente.

    importante

    Para evitar la eliminación accidental de mensajes, no puede eliminar un tema con una política de archivo de mensajes activa. La política de archivo de mensajes del tema se debe desactivar antes de poder eliminar el tema. Al desactivar una política de archivo de mensajes, Amazon SNS elimina todos los mensajes de archivo. Al eliminar un tema, se eliminan las suscripciones y es posible que no se entreguen los mensajes en tránsito.

Crear una política de archivo de mensajes con la API

Para crear una política de archivo de mensajes mediante la API, debe agregar el atributo ArchivePolicy al tema. Puede configurar ArchivePolicy con las acciones de la API CreateTopic y SetTopicAttributes. ArchivePolicy tiene un valor único, MessageRetentionPeriod, que representa el número de días que Amazon SNS retiene los mensajes. Para activar el archivo de mensajes para el tema, establezca MessageRetentionPeriod en un valor entero mayor que cero. Por ejemplo, para retener mensajes en el archivo durante 30 días, establezca ArchivePolicy en:

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

Para desactivar el archivo de mensajes para el tema y borrar el archivo, desactive ArchivePolicy, de la siguiente manera:

{}

Crear una política de archivo de mensajes mediante el SDK

Para usar un AWS SDK, debe configurarlo con sus credenciales. Para obtener más información, consulte credentialsArchivos config y compartidos en la Guía de referencia de herramientas AWS SDKs y herramientas.

En el siguiente ejemplo de código, se muestra cómo configurar ArchivePolicy para que un tema de Amazon SNS retenga todos los mensajes publicados en ese tema durante 30 días.

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

Cree una política de archivado de mensajes mediante AWS CloudFormation

Para crear una política de archivado utilizando, AWS CloudFormation consulte AWS::SNS::Topicla Guía del AWS CloudFormation usuario.

Conceder acceso a un archivo cifrado

Antes de que un suscriptor pueda empezar a reproducir mensajes de un tema cifrado, debe completar los siguientes pasos. Como los mensajes anteriores se reproducen, Amazon SNS debe disponer de acceso de Decrypt a la clave de KMS que se utilizó para cifrar los mensajes del archivo.

  1. Cuando cifra los mensajes con una clave de KMS y los almacena en el tema, debe conceder a Amazon SNS la capacidad de descifrar estos mensajes mediante una política de claves. Para obtener más información, consulte Conceder permisos de descifrado a Amazon SNS.

  2. Habilitar AWS KMS para Amazon SNS. Para obtener más información, consulte Configuración de AWS KMS permisos.

importante

Cuando agregue las secciones nuevas a su política de clave de KMS, no cambie las secciones existentes en la política. Si el cifrado está habilitado en un tema y la clave de KMS está desactivada o eliminada o la política de claves de KMS no está configurada correctamente para Amazon SNS, Amazon SNS no podrá reproducir los mensajes a los suscriptores.

Conceder permisos de descifrado a Amazon SNS

Para que Amazon SNS acceda a los mensajes cifrados desde el archivo del tema y los reproduzca en los puntos de conexión suscritos, debe habilitar el principio del servicio de Amazon SNS para descifrar estos mensajes.

A continuación, se muestra una política de ejemplo que se requiere para permitir que la entidad principal del servicio de Amazon SNS descifre los mensajes almacenados durante una reproducción del historial de mensajes dentro del tema.

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

Supervisa las métricas del archivo de mensajes con Amazon CloudWatch

Puedes monitorizar los mensajes archivados con Amazon CloudWatch con las siguientes métricas. Para recibir notificaciones de anomalías en tus cargas de trabajo y evitar que se vean afectadas, puedes configurar las CloudWatch alarmas de Amazon en función de estas métricas. Para obtener más información, consulta Registro y monitoreo en Amazon SNS.

Métrica Descripción

ApproximateNumberOfMessagesArchived

Proporciona al propietario del tema el número total de mensajes archivados en el archivo de temas, en una resolución de 60 minutos.

ApproximateNumberOfBytesArchived

Proporciona al propietario del tema el número total de bytes archivados en todos los mensajes del archivo de temas, con una resolución de 60 minutos.

NumberOfMessagesArchiveProcessing

Proporciona al propietario del tema el número de mensajes guardados en el archivo de temas durante el intervalo en una resolución de 1 minuto.

NumberOfBytesArchiveProcessing

Proporciona al propietario del tema el número total de bytes guardados en el archivo de temas durante el intervalo en una resolución de 1 minuto.

La API GetTopicAttributes tiene una propiedad BeginningArchiveTime que representa la marca temporal más antigua en la que un suscriptor puede iniciar una reproducción. A continuación, se muestra una respuesta de ejemplo para esta acción de la API:

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