Tipos y destinos de las notificaciones de eventos
Amazon S3 admite varios tipos de notificaciones de eventos y destinos en los que se pueden publicar los avisos. Puede especificar el tipo de evento y el destino al configurar las notificaciones de eventos. Solo se puede especificar un destino para cada notificación de evento. Las notificaciones de eventos de Amazon S3 envían una entrada de evento por cada mensaje de notificación.
Temas
Destinos de eventos admitidos
Amazon S3 puede enviar mensajes de notificación de eventos a los siguientes destinos.
-
Temas de Amazon Simple Notification Service (Amazon SNS)
-
Colas de Amazon Simple Queue Service (Amazon SQS)
-
AWS Lambda
-
Amazon EventBridge
Sin embargo, solo se puede especificar un tipo de destino para cada notificación de evento.
nota
Debe conceder permisos a Amazon S3 para publicar mensajes en un tema de Amazon SNS o en una cola de Amazon SQS. También debe conceder permiso a Amazon S3 para invocar una función de AWS Lambda en su nombre. Para obtener instrucciones sobre cómo conceder estos permisos, consulte Conceder permisos para publicar mensajes de notificación de eventos en un destino.
Tema de Amazon SNS
Amazon SNS es un servicio de mensajería push flexible y totalmente administrado. Puede utilizar este servicio para enviar mensajes a dispositivos móviles o servicios distribuidos. Con SNS, puede publicar un mensaje una vez y entregarlo una o más veces. En la actualidad, el SNS estándar solo está permitido como destino de notificación de eventos S3, mientras que SNS FIFO no está permitido.
Amazon SNS coordina y administra el envío y la entrega de mensajes a los puntos de conexión o clientes que se suscriban. Puede usar la consola de Amazon S3 para crear un tema de Amazon SNS al que enviar sus notificaciones.
El tema debe estar en la misma Región de AWS que el bucket de Amazon S3. Para obtener instrucciones sobre cómo crear un tema de Amazon SNS, consulte Introducción a Amazon SNS en la Guía para desarrolladores de Amazon Simple Notification Service y las Preguntas frecuentes de Amazon SNS
Antes de poder utilizar el tema de Amazon SNS que creó como destino de notificación de eventos, necesita lo siguiente:
-
El nombre de recurso de Amazon (ARN) para el tema de Amazon SNS.
-
Una suscripción válida a temas de Amazon SNS. Con ella, los suscriptores del tema reciben una notificación cuando se publica un mensaje en su tema de Amazon SNS.
Cola de Amazon SQS
Amazon SQS ofrece colas alojadas de confianza y escalables para almacenar mensajes mientras viajan entre equipos. Puede utilizar Amazon SQS para enviar cualquier volumen de datos sin la necesidad de que otros servicios tengan que estar siempre disponibles. Puede usar la consola de Amazon SQS para crear una cola de Amazon SQS a la que enviar sus notificaciones.
La cola de Amazon SQS debe estar en la misma Región de AWS que el bucket de Amazon S3. Para obtener instrucciones sobre cómo crear una cola de Amazon SQS, consulte Qué es Amazon Simple Queue Service e Introducción a Amazon SQS en la Guía para desarrolladores de Amazon Simple Queue Service.
Antes de poder usar la cola de Amazon SQS como destino de notificación de eventos, necesita lo siguiente:
-
El nombre de recurso de Amazon (ARN) para la cola de Amazon SQS
nota
No se admiten colas FIFO (First-In-First-Out) de Amazon Simple Queue Service como destino de la notificación de eventos de Amazon S3. Para enviar una notificación de un evento de Amazon S3 a una cola FIFO de Amazon SQS, puede utilizar Amazon EventBridge. Para obtener más información, consulte Activación de Amazon EventBridge.
Lambda function
Puede utilizar AWS Lambda para ampliar otros servicios de AWS con lógica personalizada o crear su propio backend que opere con el nivel de seguridad, rendimiento y escala de AWS. Con Lambda, puede crear aplicaciones discretas basadas en eventos que se ejecutan solo cuando es necesario. También puede utilizarlo para escalar estas aplicaciones automáticamente de unas pocas solicitudes al día a miles por segundo.
Lambda puede ejecutar código personalizado en respuesta a eventos de bucket de Amazon S3. Usted carga el código personalizado a Lambda y crea lo que se llama una función de Lambda. Cuando Amazon S3 detecta un evento de un tipo específico, puede publicar el evento en AWS Lambda e invocar la función en Lambda. En respuesta, Lambda ejecuta su función. Un tipo de evento que podría detectar, por ejemplo, es un evento creado por objeto.
Puede utilizar la consola de AWS Lambda para crear una función de Lambda que utilice la infraestructura de AWS para ejecutar el código en su nombre. La función de Lambda debe estar en la misma región que el bucket de S3. También debe tener el nombre o el ARN de una función de Lambda para configurar la función de Lambda como destino de notificación de eventos.
aviso
Si su notificación escribe en el bucket que desencadena la notificación, podría provocar un bucle de ejecución. Por ejemplo, si el bucket desencadena una función de Lambda cada vez que se carga un objeto y la función carga un objeto en el bucket, la función se activa indirectamente a sí misma. Para evitarlo, utilice dos buckets o configure el desencadenador para que solo se aplique a un prefijo que se utiliza para los objetos entrantes.
Para obtener más información y un ejemplo del uso de notificaciones de Amazon S3 con AWS Lambda, consulte Uso de AWS Lambda con Amazon S3 en la Guía para desarrolladores de AWS Lambda.
Amazon EventBridge
Amazon EventBridge es un bus de eventos sin servidor, que recibe eventos de servicios de AWS. Puede configurar reglas para que coincidan con los eventos y entregarlos a los objetivos, como un servicio AWS o un punto de conexión HTTP. Para obtener más información, consulte ¿Qué es EventBridge? en la Guía del usuario de Amazon EventBridge.
A diferencia de otros destinos, puede habilitar o desactivar los eventos que se entregarán a EventBridge para un bucket. Si habilita la entrega, todos los eventos se envían a EventBridge. Además, puede utilizar las reglas de EventBridge para dirigir eventos a destinos adicionales.
Tipos de eventos admitidos para SQS, SNS y Lambda
Amazon S3 puede publicar eventos de los siguientes tipos. Debe especificar estos tipos de eventos en la configuración de notificación.
Tipos de eventos | Descripción |
---|---|
|
Cuando se habilita una notificación, Amazon S3 publica una notificación de prueba. Con esto, se busca garantizar que el tema existe y que el propietario del bucket tiene permiso para publicar el tema especificado. Si la activación de la notificación falla, no recibirá una notificación de prueba. |
|
Las operaciones de la API de Amazon S3 como
|
|
Con los tipos de eventos Puede solicitar una notificación cuando un objeto se elimina o un objeto con control de versiones se elimina de forma permanente con el tipo de evento Estas notificaciones de eventos no lo alertan sobre eliminaciones automáticas de configuraciones del ciclo de vida o de operaciones fallidas. |
|
Con los tipos de eventos El tipo de evento |
s3:ReducedRedundancyLostObject |
Puede recibir este evento de notificación cuando Amazon S3 detecte que se ha perdido un objeto de la clase de almacenamiento RRS. |
|
Mediante el uso de tipos de eventos de
|
|
Mediante el uso de los tipos de eventos El tipo de evento |
s3:LifecycleTransition |
Recibirá este evento de notificación cuando un objeto se transfiera a otra clase de almacenamiento de Amazon S3 mediante una configuración de S3 Lifecycle. |
s3:IntelligentTiering |
Recibirá este evento de notificación cuando un objeto de la clase de almacenamiento S3 Intelligent-Tiering se transfiera al nivel Archive Access o Deep Archive Access. |
|
Mediante el uso de los tipos de eventos El tipo de evento |
s3:ObjectAcl:Put |
Recibe este evento de notificación cuando una ACL es PUT en un objeto o cuando se cambia una ACL existente. No se genera un evento cuando una solicitud no produce cambios en la ACL de un objeto. |
Tipos de eventos admitidos para Amazon EventBridge
Para obtener una lista de los tipos de eventos que Amazon S3 enviará a Amazon EventBridge, consulte Uso de EventBridge.
Orden de eventos y eventos duplicados
Las notificaciones de eventos de Amazon S3 se han diseñado para entregar notificaciones al menos una vez, pero no se garantiza que lleguen en el mismo orden en que se produjeron los eventos. En casos excepcionales, el mecanismo de reintento de Amazon S3 puede originar notificaciones de eventos de S3 duplicadas para el mismo evento de objeto. Para obtener más información sobre la gestión de eventos duplicados o fuera de servicio, consulte Administrar los pedidos de eventos y los eventos duplicados con las notificaciones de eventos de Amazon S3