Tutorial: Crear una EventBridge tubería que filtre los eventos de origen - Amazon EventBridge

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: Crear una EventBridge tubería que filtre los eventos de origen

En este tutorial, creará una canalización que conecte un origen de flujo de DynamoDB a un destino de cola de Amazon SQS. Tendrá que especificar un patrón de eventos para la canalización que se utilizará al filtrar los eventos para entregarlos a la cola. A continuación, probará la canalización para asegurarse de que solo se entreguen los eventos deseados.

Requisitos previos: crear el origen y el destino

Antes de crear la canalización, tendrá que crear el origen y el destino a los que se va a conectar. En este caso, un flujo de datos de Amazon DynamoDB como origen de la canalización y una cola de Amazon SQS como destino de la canalización.

Para simplificar este paso, puede utilizarlo AWS CloudFormation para implementar los recursos de origen y destino. Para ello, creará una CloudFormation plantilla que defina los siguientes recursos:

  • El origen de la canalización

    Una tabla de Amazon DynamoDB, denominada pipe-tutorial-source, con un flujo habilitado para proporcionar un flujo ordenado de información sobre los cambios que se realizan en los elementos de la tabla de DynamoDB.

  • El tipo de destino

    Una cola de Amazon SQS, denominada pipe-tutorial-target, para recibir el flujo de eventos de DynamoDB desde su canalización.

Para crear la CloudFormation plantilla para el aprovisionamiento de recursos canalizados
  1. Copie el texto de la plantilla JSON de la sección AWS CloudFormation plantilla para generar requisitos previos , a continuación.

  2. Guarde la plantilla como un archivo JSON (por ejemplo, ~/pipe-tutorial-resources.json).

A continuación, utilice el archivo de plantilla que acaba de crear para aprovisionar una CloudFormation pila.

nota

Una vez que hayas creado tu CloudFormation pila, se te cobrarán los AWS recursos que aprovisione.

Aprovisione los requisitos previos del tutorial mediante la AWS CLI
  • Ejecute el siguiente comando de la CLI, donde --template-body especifica la ubicación de su archivo de plantilla:

    aws cloudformation create-stack --stack-name pipe-tuturial-resources --template-body file://~/pipe-tutorial-resources.json
Aprovisione los requisitos previos del tutorial mediante la consola CloudFormation
  1. Abre la AWS CloudFormation consola en https://console.aws.amazon.com/cloudformation.

  2. Seleccione Pilas y, seguidamente, seleccione Crear pila, y elija la opción con recursos nuevos (estándar).

    CloudFormation muestra el asistente de creación de pilas.

  3. En Requisito previo: preparar la plantilla, deje seleccionada la opción predeterminada La plantilla está lista.

  4. En Especificar plantilla, seleccione Subir un archivo de plantilla y, a continuación, seleccione el archivo y elija Siguiente.

  5. Configure la pila y los recursos que aprovisionará:

    • En Nombre de pila, escriba pipe-tuturial-resources.

    • En Parámetros, deje los nombres predeterminados para la tabla de DynamoDB y la cola de Amazon SQS.

    • Seleccione Siguiente.

  6. Seleccione Siguiente y, a continuación, seleccione Enviar.

    CloudFormation crea la pila y aprovisiona los recursos definidos en la plantilla.

Para obtener más información CloudFormation, consulte ¿Qué es AWS CloudFormation? en la Guía AWS CloudFormation del usuario.

Paso 1: Crear la canalización

Con el origen y el destino de la canalización aprovisionados, ahora puede crear la canalización para conectar los dos servicios.

Cree la tubería con la EventBridge consola
  1. Abre la EventBridge consola de Amazon en https://console.aws.amazon.com/events/.

  2. En el panel de navegación, seleccione Canalizaciones.

  3. Seleccione Crear canalización.

  4. En Nombre, asigne un nombre a su canalización pipe-tutorial.

  5. Especifique el origen de flujo de datos de DynamoDB:

    1. En Detalles, en Origen, seleccione Flujo de datos de DynamoDB.

      EventBridge muestra los ajustes de configuración de origen específicos de DynamoDB.

    2. En Flujo de DynamoDB, seleccione. pipe-tutorial-source.

      Deje Posición inicial establecida en el valor predeterminado, Latest.

    3. Elija Siguiente.

  6. Especifique y pruebe un patrón de eventos para filtrar eventos:

    El filtrado le permite controlar qué eventos envían las canalizaciones al enriquecimiento y al destino. La canalización solo envía al enriquecimiento o al destino los eventos que coinciden con el patrón de eventos.

    Para obtener más información, consulte Filtrado de eventos en Amazon EventBridge Pipes.

    nota

    Solo se le facturarán los eventos que se envíen al enriquecimiento o al destino.

    1. En Evento de muestra: opcional, deje Eventos de AWS seleccionados y asegúrese de que el Evento 1 de muestra del flujo de DynamoDB esté seleccionado.

      Este es el evento de muestra que utilizará para probar nuestro patrón de eventos.

    2. En Patrón de eventos, introduzca el siguiente patrón de eventos:

      { "eventName": ["INSERT", "MODIFY"] }
    3. Seleccione Patrón de prueba.

      EventBridge muestra un mensaje que indica que el evento de muestra coincide con el patrón de eventos. Se debe a que el evento de muestra tiene un valor eventName de INSERT.

    4. Elija Siguiente.

  7. Seleccione Siguiente para omitir la especificación de un enriquecimiento.

    En este ejemplo, no seleccionará un enriquecimiento. Los enriquecimientos le permiten seleccionar un servicio para mejorar los datos del origen antes de enviarlos al destino. Para obtener más información, consulta Enriquecimiento de eventos en Amazon Pipes EventBridge .

  8. Especifique su cola de Amazon SQS como destino de la canalización:

    1. En Detalles, en Servicio de destino, seleccione Cola de Amazon SQS.

    2. En Cola, seleccione pipe-tutorial-target.

    3. Deje vacía la sección Transformador de entrada de destino.

      Para obtener más información, consulte Transformación EventBridge de entradas de Amazon Pipes.

  9. Seleccione Crear canalización

    EventBridge crea la tubería y muestra la página de detalles de la tubería. La canalización estará lista cuando su estado se actualice aRunning.

Paso 2: Confirmar los eventos de los filtros de la canalización

La canalización está configurada, pero aún no ha recibido los eventos de la tabla.

Para probar la canalización, debe actualizar las entradas de la tabla de DynamoDB. Cada actualización generará eventos que el flujo de DynamoDB envía a nuestra canalización. Algunos coincidirán con el patrón de eventos que especificó, otros no. A continuación, puede examinar la cola de Amazon SQS para asegurarse de que la canalización solo entregó los eventos que coincidían con nuestro patrón de eventos.

Actualizar los elementos de la tabla para generar eventos
  1. Abra la consola de DynamoDB en. https://console.aws.amazon.com/dynamodb/

  2. En la barra de navegación izquierda, seleccione Tablas. Seleccione la tabla de pipe-tutorial-source.

    DynamoDB muestra la página de detalles de la tabla para pipe-tutorial-source.

  3. Seleccione Explorar los elementos de la tabla y, a continuación, selecciones Crear elemento.

    DynamoDB muestra la página Crear elemento.

  4. En Atributos, cree un elemento de tabla nuevo:

    1. En Álbum, escriba Album A.

    2. En Artista, escriba Artist A.

    3. Seleccione Crear elemento.

  5. Actualice el elemento de la tabla:

    1. En Elementos devueltos, seleccione Álbum A.

    2. Seleccione Añadir atributo nuevo y, a continuación, seleccione Cadena.

    3. Introduzca un valor de Song nuevo, con un valor de Song A.

    4. Seleccione Guardar cambios.

  6. Elimine el elemento de la tabla:

    1. En Elementos devueltos, marque Álbum A.

    2. En el menú Acciones, seleccione Detectar elementos.

Ha realizado tres actualizaciones del elemento de la tabla; esto genera tres eventos para el flujo de datos de DynamoDB:

  • Un evento INSERT al crear el elemento.

  • Un evento MODIFY al agregar un atributo al elemento.

  • Un evento REMOVE al eliminar el elemento.

Sin embargo, el patrón de eventos que especificó para la canalización debe filtrar los eventos que no lo sean eventos INSERT o MODIFY. A continuación, confirme que la canalización envió los eventos esperados a la cola.

Confirmar que los eventos esperados se enviaron a la cola
  1. Abra la consola Amazon SQS en. https://console.aws.amazon.com/sqs/

  2. Seleccione la cola de pipe-tutorial-target.

    Amazon SQS muestra la página de detalles de la cola.

  3. Seleccione Enviar y recibir mensajes y, a continuación, en Recibir mensajes, seleccione Sondear mensajes.

    La cola sondea la canalización y, a continuación, muestra los eventos que recibe.

  4. Elija el nombre del evento para ver el JSON del evento que se entregó.

Debe haber dos eventos en la cola: uno con un eventName de INSERT y otro con un eventName de MODIFY. Sin embargo, la canalización no proporcionó el evento para eliminar el elemento de la tabla, ya que ese evento tenía un eventName de REMOVE, que no coincidía con el patrón de eventos que especificó en la canalización.

Paso 3: Eliminar los recursos

En primer lugar, elimine la propia canalización.

Elimine la tubería mediante la consola EventBridge
  1. Abre la EventBridge consola de Amazon en https://console.aws.amazon.com/events/.

  2. En el panel de navegación, seleccione Canalizaciones.

  3. Seleccione la canalización de pipe-tutorial y seleccione Eliminar.

A continuación, elimine la CloudFormation pila para evitar que se le facture por el uso continuo de los recursos aprovisionados en ella.

Elimine los requisitos previos del tutorial mediante la CLI AWS
  • Ejecute el siguiente comando de la CLI, donde --stack-name especifica el nombre de su pila:

    aws cloudformation delete-stack --stack-name pipe-tuturial-resources
Elimine los requisitos previos del tutorial mediante la consola AWS CloudFormation
  1. Abra la AWS CloudFormation consola en https://console.aws.amazon.com/cloudformation.

  2. En la página Pilas, selecciona la pila y, a continuación, seleccione Eliminar.

  3. Seleccione Eliminar para confirmar su acción.

AWS CloudFormation plantilla para generar requisitos previos

Usa el siguiente JSON para crear una CloudFormation plantilla para aprovisionar los recursos de origen y destino necesarios para este tutorial.

{ "AWSTemplateFormatVersion": "2010-09-09", "Description" : "Provisions resources to use with the EventBridge Pipes tutorial. You will be billed for the AWS resources used if you create a stack from this template.", "Parameters" : { "SourceTableName" : { "Type" : "String", "Default" : "pipe-tutorial-source", "Description" : "Specify the name of the table to provision as the pipe source, or accept the default." }, "TargetQueueName" : { "Type" : "String", "Default" : "pipe-tutorial-target", "Description" : "Specify the name of the queue to provision as the pipe target, or accept the default." } }, "Resources": { "PipeTutorialSourceDynamoDBTable": { "Type": "AWS::DynamoDB::Table", "Properties": { "AttributeDefinitions": [{ "AttributeName": "Album", "AttributeType": "S" }, { "AttributeName": "Artist", "AttributeType": "S" } ], "KeySchema": [{ "AttributeName": "Album", "KeyType": "HASH" }, { "AttributeName": "Artist", "KeyType": "RANGE" } ], "ProvisionedThroughput": { "ReadCapacityUnits": 10, "WriteCapacityUnits": 10 }, "StreamSpecification": { "StreamViewType": "NEW_AND_OLD_IMAGES" }, "TableName": { "Ref" : "SourceTableName" } } }, "PipeTutorialTargetQueue": { "Type": "AWS::SQS::Queue", "Properties": { "QueueName": { "Ref" : "TargetQueueName" } } } } }