Uso de Amazon SQS, Amazon SNS y Lambda
La habilitación de notificaciones es una operación de bucket. Almacene la información de configuración de notificaciones en el subrecurso de notificación asociado a un bucket. Después de crear o cambiar la configuración de notificación del bucket, normalmente lleva alrededor de cinco minutos para que los cambios surtan efecto. Cuando la notificación se habilita por primera vez, se produce s3:TestEvent
. Puede utilizar cualquiera de los siguientes métodos para administrar la configuración de notificación:
-
Uso de la consola de Amazon S3: puede utilizar la interfaz de usuario de la consola para configurar una notificación en un bucket sin tener que escribir ningún código. Para obtener más información, consulte Habilitación y configuración de notificaciones de eventos mediante la consola de Amazon S3.
-
Uso de los SDK de AWS mediante programación: internamente, tanto la consola como los SDK llaman a la API de REST de Amazon S3 para administrar los subrecursos de notificación asociados al bucket. Para obtener ejemplos de configuraciones de notificación que utilizan AWS SDK, consulte Explicación: configuración de un bucket para notificaciones (tema de SNS o cola de SQS).
nota
También puede realizar llamadas a la API de REST de Amazon S3 directamente desde su código. Sin embargo, esto puede ser engorroso porque para ello debe escribir el código para autenticar las solicitudes.
Independientemente del método que utilice, Amazon S3 almacena la configuración de notificación como XML en el subrecurso de notificación asociado a un bucket. Para obtener información acerca de los subrecursos de bucket, consulte Opciones de configuración de buckets.
nota
Si tiene varias notificaciones de eventos erróneas debido a la eliminación de destinos, es posible que reciba el mensaje No se pudieron validar las siguientes configuraciones de destino al intentar eliminarlas. Puede resolver este problema en la consola de S3 mediante la eliminación de todas las notificaciones erróneas al mismo tiempo.
Temas
- Conceder permisos para publicar mensajes de notificación de eventos en un destino
- Habilitación y configuración de notificaciones de eventos mediante la consola de Amazon S3
- Configuración de notificaciones de eventos mediante programación
- Explicación: configuración de un bucket para notificaciones (tema de SNS o cola de SQS)
- Configuración de notificaciones de eventos mediante el filtrado de nombres de clave de objeto
- Estructura de mensaje de evento
Configuración de notificaciones de eventos mediante programación
De forma predeterminada, las notificaciones no están habilitadas para ningún tipo de evento. Por lo tanto, el subrecurso de notificación inicialmente almacena las configuraciones vacías.
<NotificationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> </NotificationConfiguration>
Para permitir las notificaciones de eventos de determinado tipo, debe reemplazar el XML con la configuración adecuada que identifique los tipos de eventos que desea que Amazon S3 publique y el destino donde desea publicar los eventos. Para cada destino, debe añadir la configuración XML correspondiente.
Para publicar mensajes de evento en una cola SQS
A fin de establecer una cola SQS como destino de notificación para uno o varios tipos de eventos, agregue QueueConfiguration
.
<NotificationConfiguration> <QueueConfiguration> <Id>
optional-id-string
</Id> <Queue>sqs-queue-arn
</Queue> <Event>event-type
</Event> <Event>event-type
</Event> ... </QueueConfiguration> ... </NotificationConfiguration>
Para publicar mensajes de evento en un tema SNS
A fin de establecer un tema SNS como destino de notificación para tipos de eventos específicos, agregue TopicConfiguration
.
<NotificationConfiguration> <TopicConfiguration> <Id>
optional-id-string
</Id> <Topic>sns-topic-arn
</Topic> <Event>event-type
</Event> <Event>event-type
</Event> ... </TopicConfiguration> ... </NotificationConfiguration>
Para invocar la función de AWS Lambda y proporcionar un mensaje de evento como argumento
A fin de establecer una función de Lambda como destino de notificación para tipos de eventos específicos, agregue CloudFunctionConfiguration
.
<NotificationConfiguration> <CloudFunctionConfiguration> <Id>
optional-id-string
</Id> <CloudFunction>cloud-function-arn
</CloudFunction> <Event>event-type
</Event> <Event>event-type
</Event> ... </CloudFunctionConfiguration> ... </NotificationConfiguration>
Para eliminar todas las notificaciones configuradas en un bucket
Para eliminar todas las notificaciones configuradas en un bucket, guarde un <NotificationConfiguration/>
elemento vacío en el subrecurso de notificación .
Cuando Amazon S3 detecta un evento del tipo específico, publica un mensaje con la información del evento. Para obtener más información, consulte Estructura de mensaje de evento.
Para obtener más información acerca de la configuración de notificaciones de eventos, consulte los temas siguientes: