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: Envío de eventos a Amazon Kinesis mediante esquemas de EventBridge
Puede enviar eventos de llamada a la API de AWS en EventBridge a un flujo de Amazon Kinesis, crear aplicaciones de flujos de datos de Kinesis y procesar grandes cantidades de datos. En este tutorial, creará un flujo de Kinesis y, a continuación, creará una regla en la consola de EventBridge que envíe eventos a ese flujo cuando se detenga una instancia de Amazon EC2.
Pasos:
Requisitos previos
En este tutorial, utilizará lo siguiente:
Use la AWS CLI para trabajar con flujos de Kinesis.
Para instalar la AWS CLI más reciente, consulte Instalación, actualización y desinstalación de la versión 2 de la AWS CLI.
nota
En este tutorial se utilizan eventos de AWS y el registro de esquemas de aws.events
integrado. También puede crear una regla de EventBridge 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. Para obtener más información sobre cómo crear una regla con otras opciones de patrones de eventos, consulte Crear reglas que reaccionen a los eventos en Amazon EventBridge.
Paso 1: Crear un fljujo de Amazon Kinesis
Para crear un flujo, ejecute el siguiente comando en el símbolo del sistema, utilice el comando de la AWS CLI create-stream
.
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: Crear una regla
Cree una regla para enviar eventos al flujo cuando se pare una instancia de Amazon EC2.
Para crear una regla
Abra la consola de Amazon EventBridge en https://console.aws.amazon.com/events/
. -
En el panel de navegación, seleccione Reglas.
-
Elija Crear regla.
-
Escriba un nombre y una descripción para la regla. Por ejemplo, llame a la regla
TestRule
-
En Bus de eventos, seleccione el valor predeterminado.
-
En Tipo de regla, elija Regla con un patrón de evento.
-
Elija Siguiente.
-
En Origen del evento, elija Eventos de AWS o eventos de socios de EventBridge.
-
En Método de creación, elija Usar esquema.
-
En Event pattern (Patrón de evento), realice una de las siguientes acciones:
-
En Tipo de esquema, elija Seleccionar esquema del registro de esquemas.
-
En Registro de esquemas, elija aws.events en la lista desplegable.
-
En Esquema, elija aws.ec2 @EC2InstanceStateChangeNotification en la lista 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.
-
En Modelos, defina las siguientes propiedades del filtro de eventos:
Seleccione + Editar junto a la propiedad state.
Deje el campo Relación vacío. En Valor, introduzca
running
. Elija Establecer.Seleccione + Editar junto a la propiedad source.
Deje el campo Relación vacío. En Valor, introduzca
aws.ec2
. Elija Establecer.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.
-
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"] }
-
-
Elija Siguiente.
-
En Tipos de destino, seleccione Servicio de AWS.
-
En Seleccionar un destino, elija Flujo de Kinesis en la lista desplegable.
-
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
. -
En Rol de ejecución, elija Crear un rol nuevo para este recurso específico.
-
Elija Siguiente.
-
Elija Siguiente.
-
Revise los detalles de la regla y seleccione Crear regla.
Paso 3: Probar la regla
Para probar la regla, pare una instancia de Amazon EC2. Espere unos minutos a que la instancia se pare, compruebe las métricas de CloudWatch para comprobar que la función se ejecutó.
Para probar la regla parando una instancia
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
Lance una instancia. Para obtener más información, consulte Lanzar la instancia en la Guía del usuario de Amazon EC2.
Abra la consola de Amazon EventBridge en https://console.aws.amazon.com/events/
. -
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).
-
(Opcional) Cuando haya finalizado, termine la instancia. Para obtener más información, consulte Finalizar una instancia en la Guía del usuario de Amazon EC2.
Paso 4: Verificar el envío del evento
Puede usar la AWS CLI para obtener el registro del flujo para verificar que el evento se envió.
Para obtener el registro
-
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=" }
-
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
. -
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 menos que desee conservar los recursos que creó para este tutorial, puede eliminarlos ahora. Si elimina los recursos de AWS que ya no utiliza, evitará gastos innecesarios en su cuenta de AWS.
Para eliminar las reglas de EventBridge
-
Abra la página Reglas
en la consola de EventBridge. -
Seleccione las reglas que creó.
-
Elija Eliminar.
-
Elija Eliminar.
Para eliminar los flujos de Kinesis
-
Abra la página Flujos de datos
de la consola de Kinesis. -
Seleccione los flujos que creó.
-
Elija Acciones, Eliminar.
-
Escriba eliminar en el campo y seleccione Eliminar.