Tipos y destinos de las notificaciones de eventos - Amazon Simple Storage Service

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.

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

s3:TestEvent

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.

s3:ObjectCreated:*

s3:ObjectCreated:Put

s3:ObjectCreated:Post

s3:ObjectCreated:Copy

s3:ObjectCreated:CompleteMultipartUpload

Las operaciones de la API de Amazon S3 como PUT, POST y COPY pueden crear un objeto. Con estos tipos de eventos, puede habilitar las notificaciones cuando se crea un objeto mediante una operación de API específica. También puede utilizar el tipo de evento s3:ObjectCreated:* para solicitar una notificación independientemente de la API que se utilizó para crear un objeto.

s3:ObjectCreated:CompleteMultipartUpload incluye objetos que se crean con UploadPartCopy para operaciones de copia.

s3:ObjectRemoved:*

s3:ObjectRemoved:Delete

s3:ObjectRemoved:DeleteMarkerCreated

Con los tipos de eventos ObjectRemoved, puede habilitar la notificación cuando se elimina un objeto o un lote de objetos de un bucket.

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 s3:ObjectRemoved:Delete. También puede solicitar una notificación cuando se crea un marcador de eliminación para un objeto con control de versiones con s3:ObjectRemoved:DeleteMarkerCreated. Para obtener instrucciones sobre cómo eliminar objetos con control de versiones, consulte Eliminar versiones de objetos de un bucket con control de versiones habilitado. También puede utilizar un comodín s3:ObjectRemoved:* para solicitar una notificación cada vez que se elimina un objeto.

Estas notificaciones de eventos no lo alertan sobre eliminaciones automáticas de configuraciones del ciclo de vida o de operaciones fallidas.

s3:ObjectRestore:*

s3:ObjectRestore:Post

s3:ObjectRestore:Completed

s3:ObjectRestore:Delete

Con los tipos de eventos ObjectRestore, puede recibir notificaciones de iniciación y finalización de eventos al restaurar objetos desde la clase de almacenamiento S3 Glacier Flexible Retrieval, la clase de almacenamiento S3 Glacier Deep Archive, el nivel S3 Intelligent-Tiering Archive Access y el nivel S3 Intelligent-Tiering Deep Archive Access. También puede recibir notificaciones de cuándo vence la copia restaurada de un objeto.

El tipo de evento s3:ObjectRestore:Post le notifica sobre el inicio de la restauración de los objetos. El tipo de evento s3:ObjectRestore:Completed le notifica sobre la finalización de la restauración. El tipo de evento s3:ObjectRestore:Delete le notifica cuando vence la copia temporal de un objeto restaurado.

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.

s3:Replication:*

s3:Replication:OperationFailedReplication

s3:Replication:OperationMissedThreshold

s3:Replication:OperationReplicatedAfterThreshold

s3:Replication:OperationNotTracked

Mediante el uso de tipos de eventos de Replication, puede recibir notificaciones para configuraciones de replicación que indican que se han habilitado las métricas de replicación de S3 o el control del tiempo de replicación de S3 (S3 RTC). Puede monitorear el progreso de los eventos de replicación minuto a minuto mediante el seguimiento de los bytes y las operaciones pendientes, y la latencia de replicación. Para obtener información acerca de las métricas de replicación, consulte Supervisión de replicación con métricas, notificaciones de eventos y estados.

  • El tipo de evento s3:Replication:OperationFailedReplication le notifica cuando un objeto que era apto para la replicación no pudo replicarse.

  • El tipo de evento s3:Replication:OperationMissedThreshold le notifica cuando un objeto que era elegible para la replicación que usa S3 RTC supera el umbral de 15 minutos para la replicación.

  • El tipo de evento s3:Replication:OperationReplicatedAfterThreshold le notifica cuando un objeto que era elegible para la replicación que usa S3 RTC replica después del umbral de 15 minutos.

  • El tipo de evento s3:Replication:OperationNotTracked le notifica cuando un objeto que era elegible para la replicación en directo (replicación en la misma región [SRR] o replicación entre regiones [CRR]) deja de someterse al seguimiento de las métricas de replicación.

s3:LifecycleExpiration:*

s3:LifecycleExpiration:Delete

s3:LifecycleExpiration:DeleteMarkerCreated

Mediante el uso de los tipos de eventos LifecycleExpiration, puede recibir una notificación cuando Amazon S3 elimina un objeto en función de la configuración del S3 Lifecycle.

El tipo de evento s3:LifecycleExpiration:Delete le notifica cuando se elimina un objeto de un bucket sin control de versiones. También le notifica cuando la versión de un objeto se elimina de forma permanente mediante una configuración de S3 Lifecycle. El tipo de evento s3:LifecycleExpiration:DeleteMarkerCreated le notifica cuando S3 Lifecycle crea un marcador de eliminación cuando se elimina la versión actual de un objeto del bucket con control de versiones.

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.

s3:ObjectTagging:*

s3:ObjectTagging:Put

s3:ObjectTagging:Delete

Mediante el uso de los tipos de eventos ObjectTagging, puede habilitar la notificación cuando se agrega o elimina la etiqueta de un objeto.

El tipo de evento s3:ObjectTagging:Put le notifica cuando una etiqueta es PUT en un objeto o se actualiza una etiqueta existente. El tipo de evento s3:ObjectTagging:Delete le notifica cuando se quita una etiqueta de un objeto.

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 en el Blog de almacenamiento de AWS.