

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: Cree una EventBridge regla que reaccione a las llamadas a la AWS API mediante CloudTrail
<a name="eb-log-api-call"></a>

Puedes usar EventBridge [las reglas](eb-rules.md) de Amazon para reaccionar a las llamadas a la API realizadas por un AWS servicio registrado por AWS CloudTrail.

En este tutorial, creará una [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)ruta, una función Lambda y una regla en la EventBridge consola. La regla invoca la función de Lambda cuando se detiene una instancia de Amazon EC2.

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

## Paso 1: Crear una ruta AWS CloudTrail
<a name="eb-log-api-create-ct-trail"></a>

Si ya tiene configurado un registro de seguimiento, vaya al paso 2.

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

1. Abre 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. Elija **Siguiente**.

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

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

Cree una función de Lambda para registrar los eventos de llamada a la API. 

**Cómo 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 `LogEC2StopInstance`.

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('LogEC2StopInstance');
       console.log('Received event:', JSON.stringify(event, null, 2));
       callback(null, 'Finished');
   };
   ```

1. Elija **Implementar**.

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

Cree una regla para ejecutar su función de Lambda que creó en el paso 2 siempre que detenga una instancia de Amazon EC2.

**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 **EC2** en la lista desplegable.

   1. Para el **tipo de evento**, selecciona **AWS API Call via CloudTrail** en la lista desplegable.

   1. Elija **Operaciones específicas** y escriba `StopInstances`.

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 que creó en la sección **Paso 1: Crear una función de Lambda**. En este ejemplo, seleccione `LogEC2StopInstance`.

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-api-test-rule"></a>

Puede probar la regla parando una instancia de Amazon EC2 mediante la consola de Amazon EC2. Espera unos minutos a que se detenga la instancia y, a continuación, comprueba tus AWS Lambda métricas en la CloudWatch consola para comprobar que la función se ha ejecutado.

**Para probar la regla parando una instancia**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Lance una instancia. Para obtener más información, consulte [Lanzar la instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) en la *Guía del usuario de Amazon EC2*.

1. Detenga la instancia. Para obtener más información, consulte [Detener e iniciar la instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html) en la *Guía del usuario de Amazon EC2*.

1. Para ver la salida de la función de Lambda, haga lo siguiente:

   1. Abre 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 detenido.

1. (Opcional) Cuando haya finalizado, termine la instancia detenida. Para obtener más información, consulte [Finalizar una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) en la *Guía del usuario de Amazon EC2*.

## 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**.