

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Tutorial: Registre las operaciones a nivel de objeto de Amazon S3 mediante EventBridge
<a name="eb-log-s3-data-events"></a>

Puede registrar las operaciones de API en el nivel de objetos que tienen lugar en los [buckets de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html). Antes de que Amazon EventBridge pueda hacer coincidir estos [eventos](eb-events.md), debes [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)configurar y configurar una ruta para recibir estos eventos.

En este tutorial, se crea un CloudTrail rastro, se crea una [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)función y, a continuación, se crea una [regla](eb-rules.md) en la EventBridge consola que invoca esa función en respuesta a un evento de datos de S3.

**Topics**
+ [Paso 1: Configura tu ruta AWS CloudTrail](#eb-configure-trail)
+ [Paso 2: Crear una AWS Lambda función](#eb-log-s3-create-lambda-function)
+ [Paso 3: Crear una regla](#eb-log-s3-create-rule)
+ [Paso 4: Probar la regla](#eb-log-s3-test-rule)
+ [Paso 5: Confirmar el éxito](#success)
+ [Paso 6: Eliminar los recursos](#cleanup)

## Paso 1: Configura tu ruta AWS CloudTrail
<a name="eb-configure-trail"></a>

Para registrar los eventos de datos de un depósito de S3 en AWS CloudTrail y EventBridge, primero debe crear un rastro. Un *registro de seguimiento* captura las llamadas a la API y los eventos relacionados de la cuenta y entrega los archivos de registro en un bucket de S3 especificado. Puede actualizar un registro de seguimiento existente o crear uno.

Para obtener más información, consulte [Eventos de datos](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html#logging-data-events) en la *Guía del usuario de AWS CloudTrail *. 

**Creación de un registro de seguimiento**

1. Abra la CloudTrail consola en [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/).

1. Elija **Trails (Registros de seguimiento)**, **Create trail (Crear un registro de seguimiento)**.

1. En **Trail name**, escriba un nombre para el registro de seguimiento.

1. En **Ubicación de almacenamiento**, en **Crear un bucket de S3 nuevo**.

1. En **alias de AWS KMS **, escriba el alias para la clave KMS.

1. Elija **Siguiente**.

1. En **Tipo de evento**, elija **Eventos de datos**

1. En **Eventos de datos**, realice una de las siguientes operaciones:
   + Para registrar eventos de datos de todos los objetos de Amazon S3 en un bucket, especifique un bucket de S3 y un prefijo vacío. Cuando un evento se produce en un objeto de dicho bucket de , el registro de seguimiento procesa y registra el evento.
   + Para registrar los eventos de datos para objetos de Amazon S3 concretos, especifique un bucket de S3 y el prefijo del objeto. Cuando un evento se produce en un objeto en dicho bucket de y el objeto comienza por el prefijo indicado, el registro de seguimiento procesa y registra el evento.

1. En cada recurso, elija si desea registrar los eventos de tipo **Lectura**, **Escritura** o ambos.

1. Elija **Siguiente**.

1. Elija **Create Trail** (Crear registro de seguimiento).

## Paso 2: Crear una AWS Lambda función
<a name="eb-log-s3-create-lambda-function"></a>

Cree una función de Lambda para registrar eventos de datos para sus buckets de S3. 

**Para crear una función de Lambda**

1. Abre la AWS Lambda consola en [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Elija **Crear función**.

1. Elija **Crear desde cero**.

1. Introduzca un nombre y la descripción de la función de Lambda. Por ejemplo, asigne un nombre a la función `LogS3DataEvents`.

1. Deje el resto de las opciones como predeterminadas y elija **Crear función**.

1. En la pestaña **Código** de la página de funciones, haga doble clic en **index.js**.

1. Sustituya el código existente por el código siguiente.

   ```
   'use strict';
   
   exports.handler = (event, context, callback) => {
       console.log('LogS3DataEvents');
       console.log('Received event:', JSON.stringify(event, null, 2));
       callback(null, 'Finished');
   };
   ```

1. Elija **Implementar**.

## Paso 3: Crear una regla
<a name="eb-log-s3-create-rule"></a>

Cree una regla para ejecutar la función de Lambda que creó en el paso 2. Esta regla se ejecuta en respuesta a un evento de datos de Amazon S3.

**Para crear una regla**

1. Abre la EventBridge consola de Amazon en [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. En el panel de navegación, seleccione **Reglas**.

1. Elija **Creación de regla**.

1. Escriba un nombre y una descripción para la regla. Por ejemplo, llame a la regla `TestRule`

1. En **Bus de eventos**, elija el bus de eventos que desea asociar a esta regla. Si desea que esta regla coincida con eventos procedentes de su cuenta, seleccione **predeterminado**. Cuando un servicio de AWS en la cuenta emite un evento, siempre va al bus de eventos predeterminado de la cuenta.

1. En **Tipo de regla**, seleccione **Regla con un patrón de eventos**.

1. Seleccione **Siguiente**.

1. En **Origen de evento**, seleccione **Servicios de AWS **.

1. En **Event pattern** (Patrón de evento), realice una de las siguientes acciones:

   1. En **Origen del evento**, seleccione **Simple Storage Service (S3)** en la lista desplegable.

   1. Para el **tipo de evento**, selecciona **Llamar a la API a nivel CloudTrail de objeto mediante** en la lista desplegable.

   1. Elija **Operaciones específicas y, a** continuación, elija. **PutObject**

   1. De forma predeterminada, la regla coincide con los eventos de datos de todos los buckets de la región. Para asignar eventos de datos a buckets específicos, elija **Specify bucket(s) by name** y especifique uno o varios buckets.

1. Elija **Siguiente**.

1. En **Tipos de destino**, seleccione **Servicio de AWS **.

1. En **Seleccionar un destino**, elija **Función de Lambda** en la lista desplegable.

1. En **Función**, seleccione la función de Lambda de `LogS3DataEvents` que creó en el paso 1.

1. Elija **Siguiente**.

1. Elija **Siguiente**.

1. Revise los detalles de la regla y seleccione **Creación de regla**.

## Paso 4: Probar la regla
<a name="eb-log-s3-test-rule"></a>

Para probar la regla, coloque un objeto en su bucket de S3. Puede verificar que se invocó su función de Lambda.

**Para ver los registros de su función de Lambda**

1. Abra la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, elija **Logs (Registros)**.

1. Seleccione el nombre del grupo de registros para la función de Lambda (`/aws/lambda/{{function-name}}`).

1. Seleccione el nombre del flujo de registro para ver los datos proporcionados por la función para la instancia que ha lanzado.

También puede comprobar sus CloudTrail registros en el depósito de S3 que especificó para su ruta. Para obtener más información, consulte [Obtener y ver los archivos de CloudTrail registro](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/get-and-view-cloudtrail-log-files.html) en la *Guía del AWS CloudTrail usuario*.

## Paso 5: Confirmar el éxito
<a name="success"></a>

Si ve el evento Lambda en los CloudWatch registros, significa que ha completado correctamente este tutorial. Si el evento no está en sus CloudWatch registros, comience a solucionar problemas verificando que la regla se haya creado correctamente y, si la regla parece correcta, compruebe que el código de la función Lambda sea correcto.

## Paso 6: Eliminar los recursos
<a name="cleanup"></a>

A menos que desee conservar los recursos que creó para este tutorial, puede eliminarlos ahora. Al eliminar AWS los recursos que ya no utilizas, evitas que se hagan cargos innecesarios a tu AWS cuenta.

**Para eliminar la (s) EventBridge regla (s)**

1. Abre la [página de reglas](https://console.aws.amazon.com/events/home#/rules) de la EventBridge consola.

1. Seleccione las reglas que creó.

1. Elija **Eliminar**.

1. Elija **Eliminar**.

**Para eliminar las funciones de Lambda**

1. Abra la página de [Funciones](https://console.aws.amazon.com/lambda/home#/functions) en la consola de Lambda.

1. Seleccione las funciones que creó.

1. Elija **Actions** (Acciones), **Delete** (Eliminar).

1. Elija **Eliminar**.

**Para eliminar la (s) CloudTrail ruta (s)**

1. Abre la [página de senderos](https://console.aws.amazon.com/cloudtrail/home#/trails) de la CloudTrail consola.

1. Seleccione los registros de seguimiento que creó.

1. Elija **Eliminar**.

1. Elija **Eliminar**.