

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: Enviar eventos a Amazon Kinesis mediante esquemas EventBridge
<a name="eb-relay-events-kinesis-stream"></a>

Puede enviar [eventos](eb-events.md) de llamadas a la AWS API EventBridge a una [transmisión de Amazon Kinesis](https://docs.aws.amazon.com/streams/latest/dev/introduction.html), crear aplicaciones de Kinesis Data Streams y procesar grandes cantidades de datos. En este tutorial, creará una transmisión de Kinesis y, a continuación, creará una [regla](eb-rules.md) en la EventBridge consola que envíe eventos a esa transmisión cuando se detenga una EC2 instancia de [Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html).

**Topics**
+ [Requisitos previos](#eb-stream-prerequisite)
+ [Paso 1: Crear un fljujo de Amazon Kinesis](#eb-stream-create-stream)
+ [Paso 2: creación de una regla](#eb-stream-create-rule)
+ [Paso 3: Probar la regla](#eb-stream-test-rule)
+ [Paso 4: Verificar el envío del evento](#eb-stream-verify-event)
+ [Paso 5: Eliminar los recursos](#cleanup)

## Requisitos previos
<a name="eb-stream-prerequisite"></a>

En este tutorial, utilizará lo siguiente:
+ Úselo AWS CLI para trabajar con las transmisiones de Kinesis.

  Para instalar la AWS CLI, consulte [Instalación, actualización y desinstalación de la AWS CLI versión 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).

**nota**  
En este tutorial se utilizan AWS los eventos y el registro de `aws.events` esquemas integrado. También puede crear una EventBridge regla basada en el esquema de sus eventos personalizados agregándolos manualmente a un registro de esquemas personalizados o mediante la detección de esquemas.   
Para obtener más información sobre los esquemas, consulte [Esquemas de Amazon EventBridge](eb-schema.md). Para obtener más información sobre cómo crear una regla con otras opciones de patrones de eventos, consulte [Creación de reglas mediante el generador mejorado](eb-create-rule-visual.md).

## Paso 1: Crear un fljujo de Amazon Kinesis
<a name="eb-stream-create-stream"></a>

Para crear una transmisión, utilice el comando en una línea de `create-stream` AWS CLI comandos.

```
aws kinesis create-stream --stream-name {{test}} --shard-count 1
```

Cuando el estado del flujo sea `ACTIVE`, el flujo está listo. Para comprobar el estado del flujo, utilice el comando `describe-stream`.

```
aws kinesis describe-stream --stream-name {{test}}
```

## Paso 2: creación de una regla
<a name="eb-stream-create-rule"></a>

Crea una regla para enviar eventos a tu transmisión cuando detengas una EC2 instancia de Amazon.

**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**, seleccione el **valor predeterminado**.

1. En **Tipo de regla**, elija **Regla con un patrón de evento**.

1. Elija **Siguiente**.

1. **En Fuente del evento**, selecciona **AWS eventos o eventos EventBridge asociados**.

1. En **Método de creación**, elija **Usar esquema**.

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

   1. En **Tipo de esquema**, elija **Seleccionar esquema del registro de esquemas**.

   1. En **Registro de esquemas**, elija **aws.events** en la lista desplegable.

   1. Para **Schema**, elija **aws.ec2@** en la lista EC2 InstanceStateChangeNotification desplegable.

      EventBridge **muestra el esquema de eventos en Modelos.**

      EventBridge muestra un asterisco rojo junto a las propiedades necesarias *para el evento*, no para el patrón del evento. 

   1. En **Modelos**, defina las siguientes propiedades del filtro de eventos: 

      1. Seleccione **\+ Editar** junto a la propiedad **state**. 

         Deje el campo **Relación** vacío. En **Valor**, introduzca `running`. Elija **Establecer**. 

      1. Seleccione **\+ Editar** junto a la propiedad **source**. 

         Deje el campo **Relación** vacío. En **Valor**, introduzca `aws.ec2`. Elija **Establecer**. 

      1. Seleccione **\+ Editar** junto a la propiedad **detail-type**. 

         Deje el campo **Relación** vacío. En **Valor**, introduzca `EC2 Instance State-change Notification`. Elija **Establecer**. 

   1. Para ver el patrón de eventos que ha creado, elija **Generar patrón de eventos en JSON**

      EventBridge muestra el patrón de eventos en JSON:

      ```
      {
        "detail": {
          "state": ["running"]
        },
        "detail-type": ["EC2 Instance State-change Notification"],
        "source": ["aws.ec2"]
      }
      ```

1. Elija **Siguiente**.

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

1. En **Seleccionar un destino**, elija **Flujo de Kinesis** en la lista desplegable.

1. En **Flujo**, seleccione el flujo de Kinesis que creó en la sección **Paso 1: Crear un flujo de Amazon Kinesis**. En este ejemplo, seleccione `test`.

1. En **Rol de ejecución**, elija **Crear un rol nuevo para este recurso específico**.

1. Elija **Siguiente**.

1. Elija **Siguiente**.

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

## Paso 3: Probar la regla
<a name="eb-stream-test-rule"></a>

Para probar tu regla, detiene una EC2 instancia de Amazon. Espera unos minutos a que la instancia se detenga y, a continuación, comprueba tus CloudWatch métricas para comprobar que la función se ha ejecutado.

**Para probar la regla parando una instancia**

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

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

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

   Elija el nombre de la regla que ha creado y elija **Metrics for the rule (Métricas para la regla)**.

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

## Paso 4: Verificar el envío del evento
<a name="eb-stream-verify-event"></a>

Puede utilizarla AWS CLI para obtener el registro de la transmisión y comprobar que el evento se ha enviado.

**Para obtener el registro**

1. Para empezar a leer el flujo de Kinesis, en el símbolo del sistema, utilice el comando `get-shard-iterator`.

   ```
   aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name {{test}}
   ```

   A continuación, se muestra un ejemplo del resultado.

   ```
   {
       "ShardIterator": "AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg="
   }
   ```

1. Para obtener el registro, utilice el siguiente comando `get-records`. Use el iterador de partición del resultado del paso anterior.

   ```
   aws kinesis get-records --shard-iterator {{AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg=}}
   ```

   Si el comando se realiza correctamente, solicita registros del flujo para el fragmento especificado. Puede recibir cero o más registros. Los registros devueltos podrían no representar todos los registros del flujo. Si no recibe los datos que espera, siga llamando a `get-records`. 

1. Los registros de Kinesis están codificados en Base64. Use un decodificador Base64 para decodificar los datos y comprobar que se trata del evento que se envió al flujo en formato JSON.

## Paso 5: 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 cargos innecesarios en 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 los flujos de Kinesis**

1. Abra la página [Flujos de datos](https://console.aws.amazon.com/kinesis/home#/streams/list) de la consola de Kinesis.

1. Seleccione los flujos que creó.

1. Elija **Acciones**, **Eliminar**.

1. Escriba **eliminar** en el campo y seleccione **Eliminar**.