

# Aceleración de los rastreadores mediante las notificaciones de eventos de Amazon S3
<a name="crawler-s3-event-notifications"></a>

En lugar de publicar los objetos de un destino de Amazon S3 o del Catálogo de datos, puede configurar el rastreador para que utilice eventos de Amazon S3 para buscar cualquier cambio. Esta característica mejora el tiempo de rastreo mediante el uso de eventos de Amazon S3 o del Catálogo de datos para identificar los cambios entre dos rastreos al enumerar todos los archivos de la subcarpeta que activó el evento en lugar de publicar el destino completo de Amazon S3 o el Catálogo de datos.

En el primer rastreo se enumeran todos los objetos de Amazon S3 del destino. Después del primer rastreo exitoso, puede optar por volver a rastrear manualmente o según un calendario establecido. El rastreador enumerará solo los objetos de esos eventos en lugar de enumerar todos los objetos.

Cuando el destino es una tabla del Catálogo de datos, el rastreador actualiza las tablas existentes en el Catálogo de datos con los cambios (por ejemplo, particiones adicionales en una tabla).

Las ventajas de pasar a un rastreador basado en eventos de Amazon S3 son:
+ Un nuevo rastreo más rápido, ya que la lista de todos los objetos del destino no es necesaria, sino que la lista de carpetas específicas se realiza cuando se agregan o eliminan objetos.
+ Reducción del costo global de rastreo a medida que la lista de carpetas específicas se realiza en las que se agregan o eliminan objetos.

El rastreo de eventos de Amazon S3 se ejecuta al consumir eventos de Amazon S3 desde la cola de SQS según la programación del rastreador. No habrá ningún costo si no hay eventos en la cola. Los eventos de Amazon S3 se pueden configurar para que vayan directamente a la cola de SQS o en los casos en que varios consumidores necesitan el mismo evento, una combinación de SNS y SQS. Para obtener más información, consulte [Cómo configurar la cuenta para las notificaciones de eventos de Amazon S3](#crawler-s3-event-notifications-setup).

Después de crear y configurar el rastreador en modo evento, el primer rastreo se ejecuta en modo listado y enumera un listado completo del destino de Amazon S3 o del Catálogo de datos. A través del siguiente registro se confirma el funcionamiento del rastreo mediante el uso de eventos de Amazon S3 tras el primer rastreo correcto: “El rastreo se ejecuta mediante el uso de eventos de Amazon S3”.

Después de crear el rastreo de eventos de Amazon S3 y actualizar las propiedades del rastreador que pueden afectar al rastreo, el rastreo funciona en modo lista y se agrega el siguiente registro: “El rastreo no se ejecuta en modo de evento de S3”.

**nota**  
El número máximo de mensajes que se pueden consumir es de 100 000 mensajes por rastreo.

## Consideraciones y limitaciones
<a name="s3event-crawler-limitations"></a>

Las siguientes consideraciones y limitaciones se aplican al configurar un rastreador para usar notificaciones de eventos de Amazon S3 para detectar cualquier cambio. 
+  **Comportamiento importante con particiones eliminadas** 

  Cuando se utilizan rastreadores de eventos de Amazon S3 con tablas del Catálogo de datos:
  +  Si elimina una partición mediante la llamada a la API `DeletePartition`, también debe eliminar todos los objetos de S3 de esa partición y seleccionar **Todos los eventos de eliminación de objetos** al configurar las notificaciones de eventos de S3. Si los eventos de eliminación no están configurados, el rastreador volverá a crear la partición eliminada durante su próxima ejecución. 
+ El rastreador admite un solo destino, ya sean destinos para Amazon S3 o para el Catálogo de datos.
+ No es posible utilizar SQS en una VPC privada.
+ No se admite el muestreo de Amazon S3.
+ El destino del rastreador debe ser una carpeta para un destino de Amazon S3 o una o más tablas del Catálogo de datos de AWS Glue para un destino del Catálogo de datos.
+ No se admite el comodín de la ruta “todo”: s3://%
+ Para un destino de Catálogo de datos, todas las tablas del Catálogo deben apuntar al mismo bucket de Amazon S3 para el modo de eventos de Amazon S3.
+ Para un destino de Catálogo de datos, una tabla de catálogo no debe apuntar a una ubicación de Amazon S3 en formato Delta Lake (que contenga carpetas \$1symlink o consulte las tablas del catálogo `InputFormat`).

**Topics**
+ [Consideraciones y limitaciones](#s3event-crawler-limitations)
+ [Cómo configurar la cuenta para las notificaciones de eventos de Amazon S3](#crawler-s3-event-notifications-setup)
+ [Configuración de un rastreador para las notificaciones de eventos de Amazon S3 para un destino de Amazon S3](crawler-s3-event-notifications-setup-console-s3-target.md)
+ [Configuración de un rastreador para notificaciones de eventos de Amazon S3 para una tabla del Catálogo de datos](crawler-s3-event-notifications-setup-console-catalog-target.md)

## Cómo configurar la cuenta para las notificaciones de eventos de Amazon S3
<a name="crawler-s3-event-notifications-setup"></a>

Realice los siguientes pasos de configuración. Tenga en cuenta que los valores entre paréntesis hacen referencia a los valores configurables del script.

1. Debe configurar las notificaciones de eventos para su bucket de Amazon S3.

   Para obtener más información, consulte [Notificaciones de eventos de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EventNotifications.html).

1. Para utilizar el rastreador basado en eventos de Amazon S3, debe habilitar la notificación de eventos en el bucket de Amazon S3 con eventos filtrados del prefijo, que es el mismo que el destino de S3 y el almacenamiento en SQS. Puede configurar SQS y la notificación de eventos a través de la consola siguiendo los pasos del [Tutorial: configuración de un bucket para notificaciones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ways-to-add-notification-config-to-bucket.html).

1. Agregue la siguiente política de SQS al rol utilizado por el rastreador. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "VisualEditor0",
         "Effect": "Allow",
         "Action": [
           "sqs:DeleteMessage",
           "sqs:GetQueueUrl",
           "sqs:ListDeadLetterSourceQueues",
           "sqs:ReceiveMessage",
           "sqs:GetQueueAttributes",
           "sqs:ListQueueTags",
           "sqs:SetQueueAttributes",
           "sqs:PurgeQueue"
         ],
         "Resource": "arn:aws:sqs:us-east-1:111122223333:cfn-sqs-queue"
       }
     ]
   }
   ```

------

# Configuración de un rastreador para las notificaciones de eventos de Amazon S3 para un destino de Amazon S3
<a name="crawler-s3-event-notifications-setup-console-s3-target"></a>

Siga estos pasos para configurar un rastreador para las notificaciones de eventos de Amazon S3 para un destino de Amazon S3 mediante la Consola de administración de AWS o AWS CLI.

------
#### [ Consola de administración de AWS ]

1. Inicie sesión en la Consola de administración de AWS y abra la consola de GuardDuty en [https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/).

1.  Configure las propiedades del rastreador. Para obtener más información, consulte [Opciones de configuración de rastreadores en la consola de AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html#crawler-configure-changes-console). 

1.  En la sección **Configuración de origen de datos**, se preguntará *¿Los datos ya están asignados a tablas de AWS Glue?* 

    De manera predeterminada, está seleccionado **Not yet** (Aún no). Déjelo así si está utilizando un origen de datos de Amazon S3 y los datos aún no están asignados a tablas de AWS Glue. 

1.  En la sección **Data sources** (Origen de datos), elija **Add a data source** (Agregar un origen de datos).   
![\[Data source configuration interface with options to select or add data sources for crawling.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/crawler-s3-event-console1.png)

1.  En el modal **Add data source** (Agregar origen de datos), configure el origen de datos de Amazon S3: 
   +  **Data source** (Origen de datos): de manera predeterminada, está seleccionado Amazon S3. 
   +  **Network connection** (Conexión de red) (opcional): elija **Add new connection** (Agregar nueva conexión). 
   +  **Location of Amazon S3 data** (Ubicación de datos de Amazon S3): de manera predeterminada, está seleccionado **In this account** (En esta cuenta). 
   +  **Amazon S3 path** (Ruta de Amazon S3): especifique la ruta de Amazon S3 en la que se rastrean carpetas y archivos. 
   +  **Subsequent crawler runs** (Ejecuciones posteriores del rastreador): elija **Crawl based on events** (Rastreo basado en eventos) para utilizar las notificaciones de eventos de Amazon S3 para el rastreador. 
   +  **Include SQS ARN** (Incluir ARN de SQS): especifique los parámetros del almacén de datos, incluido un ARN SQS válido. (Por ejemplo, `arn:aws:sqs:region:account:sqs`). 
   +  **Include dead-letter SQS ARN** (Incluir un SQS ARN de mensajes fallidos) (Optional): especifique un ARN de SQS con mensajes erróneos de Amazon válido. (Por ejemplo, `arn:aws:sqs:region:account:deadLetterQueue`). 
   +  Elija **Add an Amazon S3 data source** (Agregar un origen de datos de Amazon S3).   
![\[Add data source dialog for S3, showing options for network connection and crawl settings.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/crawler-s3-event-console2.png)

------
#### [ AWS CLI ]

 El siguiente es un ejemplo de llamada a la AWS CLI de Amazon S3 para configurar un rastreador para usar notificaciones de eventos a fin de rastrear un bucket de destino de Amazon S3. 

```
Create Crawler:
aws glue update-crawler \
    --name myCrawler \
    --recrawl-policy RecrawlBehavior=CRAWL_EVENT_MODE \
    --schema-change-policy UpdateBehavior=UPDATE_IN_DATABASE,DeleteBehavior=LOG
    --targets '{"S3Targets":[{"Path":"s3://amzn-s3-demo-bucket/", "EventQueueArn": "arn:aws:sqs:us-east-1:012345678910:MyQueue"}]}'
```

------

# Configuración de un rastreador para notificaciones de eventos de Amazon S3 para una tabla del Catálogo de datos
<a name="crawler-s3-event-notifications-setup-console-catalog-target"></a>

Cuando el destino sea una tabla del Catálogo de datos, configure un rastreador para las notificaciones de eventos de Amazon S3 mediante la consola de AWS Glue:

1.  Configure las propiedades del rastreador. Para obtener más información, consulte [Opciones de configuración de rastreadores en la consola de AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html#crawler-configure-changes-console). 

1.  En la sección **Configuración de origen de datos**, se preguntará *¿Los datos ya están asignados a tablas de AWS Glue?* 

    Seleccione **Yes** (Sí) para seleccionar las tablas existentes de su Catálogo de datos como origen de datos. 

1.  En la sección **Glue tables** (Tablas de Glue), seleccione **Add tables** (Agregar tablas).   
![\[Data source configuration interface with options to select existing Glue tables or add new ones.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/crawler-s3-event-console1-cat.png)

1.  En el modal **Add table** (Agregar tabla), configure la base de datos y las tablas: 
   +  **Network connection** (Conexión de red) (opcional): elija **Add new connection** (Agregar nueva conexión). 
   +  **Base de datos**: seleccione una base de datos en el Catálogo de datos. 
   +  **Tablas**: seleccione una o más tablas de esa base de datos en el Catálogo de datos. 
   +  **Subsequent crawler runs** (Ejecuciones posteriores del rastreador): elija **Crawl based on events** (Rastreo basado en eventos) para utilizar las notificaciones de eventos de Amazon S3 para el rastreador. 
   +  **Include SQS ARN** (Incluir ARN de SQS): especifique los parámetros del almacén de datos, incluido un ARN SQS válido. (Por ejemplo, `arn:aws:sqs:region:account:sqs`). 
   +  **Include dead-letter SQS ARN** (Incluir un SQS ARN de mensajes fallidos) (Optional): especifique un ARN de SQS con mensajes erróneos de Amazon válido. (Por ejemplo, `arn:aws:sqs:region:account:deadLetterQueue`). 
   +  Elija **Confirmar**.   
![\[Add Glue tables dialog with network, database, tables, and crawler options.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/crawler-s3-event-console2-cat.png)