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
Copie el texto de la plantilla JSON de la sección AWS CloudFormation plantilla para generar requisitos previos , a continuación.
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
-
Abre la AWS CloudFormation consola en https://console.aws.amazon.com/cloudformation.
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.
En Requisito previo: preparar la plantilla, deje seleccionada la opción predeterminada La plantilla está lista.
En Especificar plantilla, seleccione Subir un archivo de plantilla y, a continuación, seleccione el archivo y elija Siguiente.
-
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.
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
Abre la EventBridge consola de Amazon en https://console.aws.amazon.com/events/
. En el panel de navegación, seleccione Canalizaciones.
Seleccione Crear canalización.
En Nombre, asigne un nombre a su canalización
pipe-tutorial
.Especifique el origen de flujo de datos de DynamoDB:
En Detalles, en Origen, seleccione Flujo de datos de DynamoDB.
EventBridge muestra los ajustes de configuración de origen específicos de DynamoDB.
En Flujo de DynamoDB, seleccione.
pipe-tutorial-source
.Deje Posición inicial establecida en el valor predeterminado,
Latest
.Elija Siguiente.
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.
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.
En Patrón de eventos, introduzca el siguiente patrón de eventos:
{ "eventName": ["INSERT", "MODIFY"] }
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
deINSERT
.Elija Siguiente.
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 .
Especifique su cola de Amazon SQS como destino de la canalización:
En Detalles, en Servicio de destino, seleccione Cola de Amazon SQS.
En Cola, seleccione
pipe-tutorial-target
.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.
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 a
Running
.
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
Abra la consola de DynamoDB en. https://console.aws.amazon.com/dynamodb/
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
.Seleccione Explorar los elementos de la tabla y, a continuación, selecciones Crear elemento.
DynamoDB muestra la página Crear elemento.
En Atributos, cree un elemento de tabla nuevo:
En Álbum, escriba
Album A
.En Artista, escriba
Artist A
.Seleccione Crear elemento.
Actualice el elemento de la tabla:
En Elementos devueltos, seleccione Álbum A.
Seleccione Añadir atributo nuevo y, a continuación, seleccione Cadena.
Introduzca un valor de
Song
nuevo, con un valor deSong A
.Seleccione Guardar cambios.
Elimine el elemento de la tabla:
En Elementos devueltos, marque Álbum A.
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
Abra la consola Amazon SQS en. https://console.aws.amazon.com/sqs/
Seleccione la cola de
pipe-tutorial-target
.Amazon SQS muestra la página de detalles de la cola.
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.
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
Abre la EventBridge consola de Amazon en https://console.aws.amazon.com/events/
. En el panel de navegación, seleccione Canalizaciones.
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
-
Abra la AWS CloudFormation consola en https://console.aws.amazon.com/cloudformation.
En la página Pilas, selecciona la pila y, a continuación, seleccione Eliminar.
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" } } } } }