

# Tipos y destinos de las notificaciones de eventos
<a name="notification-how-to-event-types-and-destinations"></a>

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.

**Topics**
+ [Destinos de eventos admitidos](#supported-notification-destinations)
+ [Tipos de eventos admitidos para SQS, SNS y Lambda](#supported-notification-event-types)
+ [Tipos de eventos admitidos para Amazon EventBridge](#supported-notification-event-types-eventbridge)
+ [Orden de eventos y eventos duplicados](#event-ordering-and-duplicate-events)

## Destinos de eventos admitidos
<a name="supported-notification-destinations"></a>

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](grant-destinations-permissions-to-s3.md). 

### Tema de Amazon SNS
<a name="amazon-sns-topic"></a>

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](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html) en la *Guía para desarrolladores de Amazon Simple Notification Service* y las [Preguntas frecuentes de Amazon SNS](https://aws.amazon.com/sns/faqs/).

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
<a name="amazon-sqs-queue"></a>

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](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) e [Introducción a Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) 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](enable-event-notifications-eventbridge.md).

### Lambda function
<a name="lambda-function"></a>

Puede utilizar AWS Lambda para ampliar otros servicios de AWS con lógica personalizada o crear su propio backend que opera 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 a fin de 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](https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html) en la *Guía para desarrolladores de AWS Lambda*. 

### Amazon EventBridge
<a name="eventbridge-dest"></a>

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?](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) 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
<a name="supported-notification-event-types"></a>

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.<br />Si la activación de la notificación falla, no recibirá una notificación de prueba. | 
| `s3:ObjectCreated:*`<br />`s3:ObjectCreated:Put`<br />`s3:ObjectCreated:Post`<br />`s3:ObjectCreated:Copy`<br />`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. <br />`s3:ObjectCreated:CompleteMultipartUpload` incluye objetos que se crean con [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) para operaciones de copia. | 
| `s3:ObjectRemoved:*`<br />`s3:ObjectRemoved:Delete`<br />`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.<br />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](DeletingObjectVersions.md). También puede utilizar un comodín `s3:ObjectRemoved:*` para solicitar una notificación cada vez que se elimina un objeto. <br />Estas notificaciones de eventos no lo alertan sobre eliminaciones automáticas de configuraciones del ciclo de vida o de operaciones fallidas. | 
| `s3:ObjectRestore:*`<br />`s3:ObjectRestore:Post`<br />`s3:ObjectRestore:Completed`<br />`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.<br />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:*`<br />`s3:Replication:OperationFailedReplication`<br />`s3:Replication:OperationMissedThreshold`<br />`s3:Replication:OperationReplicatedAfterThreshold`<br />`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](replication-metrics.md).[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/notification-how-to-event-types-and-destinations.html) | 
| `s3:LifecycleExpiration:*`<br />`s3:LifecycleExpiration:Delete`<br />`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.<br />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:*`<br />`s3:ObjectTagging:Put`<br />`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.<br />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
<a name="supported-notification-event-types-eventbridge"></a>

Para obtener una lista de los tipos de eventos que Amazon S3 enviará a Amazon EventBridge, consulte [Uso de EventBridge](EventBridge.md).

## Orden de eventos y eventos duplicados
<a name="event-ordering-and-duplicate-events"></a>

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](https://aws.amazon.com/blogs/storage/manage-event-ordering-and-duplicate-events-with-amazon-s3-event-notifications/) en el *Blog de almacenamiento de AWS*.