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.
Introducción: creación de una canalización de Amazon EventBridge
Para familiarizarnos con las canalizaciones y sus capacidades, utilizaremos una plantilla de CloudFormation para configurar una canalización de EventBridge y los componentes asociados. A continuación, podremos explorar varias características de la canalización.
La plantilla crea una canalización de EventBridge que conecte un flujo de una tabla de DynamoDB a una cola de Amazon SQS. Cada vez que se crea o modifica un registro en la tabla de la base de datos, la canalización envía el evento resultante a la cola.
La canalización implementada consta de:
Una tabla de DynamoDB (un flujo) que actúa como origen de la canalización y una cola de Amazon SQS como destino de la canalización.
Un rol de ejecución que otorga a EventBridge los permisos necesarios para acceder a la tabla de DynamoDB y a la cola de Amazon SQS.
La propia canalización, que contiene un filtro de eventos que selecciona únicamente los eventos generados al crear (insertar) o modificar un elemento de la tabla.
Para obtener detalles técnicos específicos de la plantilla, consulte Detalles de la plantilla.
Creación de la canalización mediante CloudFormation
Para crear la canalización y los recursos asociados, generaremos una plantilla de CloudFormation y la utilizaremos para crear una pila que contenga un canalización de muestra, que incluya el origen y el destino.
importante
Si crea una pila a partir de esta plantilla, se le facturarán los recursos de Amazon que utilice.
Primero, cree la plantilla de CloudFormation.
En la sección Plantilla, haga clic en el icono de copia de la pestaña JSON o YAML para copiar el contenido de la plantilla.
Pegue el contenido de la plantilla en un archivo nuevo.
Guarde el archivo localmente.
A continuación, utilice la plantilla que creó para aprovisionar una pila de CloudFormation.
Abra la consola de CloudFormation en https://console.aws.amazon.com/cloudformation/
. En la página Pilas, para Crear pila elija Con nuevos recursos (estándar).
En Especificar plantilla:
En Requisito previo, elija Seleccionar una plantilla existente.
En Especificar plantilla, elija Cargar un archivo de plantilla.
Seleccione Elegir archivo para navegar hasta el archivo y seleccionarlo.
Elija Siguiente.
Especifique los detalles de la pila:
Introduzca un nombre de pila.
Para los parámetros, acepte los valores predeterminados o introduzca los propios.
Elija Siguiente.
Configure las opciones la pila:
En las opciones de error de pila, seleccione Eliminar todos los recursos recién creados.
nota
Si elige esta opción, evita que se le facturen los recursos cuya política de eliminación especifique que se conservarán incluso si se produce un error durante la creación de la pila. Para obtener más información, consulte Atributo
DeletionPolicyen la Guía del usuario de CloudFormation.Acepte todos los demás valores predeterminados.
En Capacidades, seleccione la casilla para aceptar que CloudFormation puede crear recursos de IAM en su cuenta.
Elija Siguiente.
Revise los detalles de la pila y elija Enviar.
Creación de la pila con CloudFormation (AWS CLI)
También puede utilizar la AWS CLI para crear la pila.
-
Utilice el comando
create-stack.Acepte los valores de los parámetros de la plantilla predeterminados y especifique el nombre de la pila. Utilice el parámetro
template-bodypara pasar el contenido de la plantilla otemplate-urlpara especificar una ubicación de URL.aws cloudformation create-stack \ --stack-nameeventbridge-rule-tutorial\ --template-bodytemplate-contents\ --capabilities CAPABILITY_IAMSobrescriba los valores predeterminados de uno o más parámetros de plantilla. Por ejemplo:
aws cloudformation create-stack \ --stack-nameeventbridge-rule-tutorial\ --template-bodytemplate-contents\ --parameters \ ParameterKey=SourceTableName,ParameterValue=pipe-example-source\ ParameterKey=TargetQueueName,ParameterValue=pipe-example-target\ ParameterKey=PipeName,ParameterValue=pipe-with-filtering-example\ --capabilities CAPABILITY_IAM
CloudFormation crea la pila. Una vez completada la creación de la pila, los recursos de la pila están listos para usarse. Puede usar la pestaña Recursos de la página de detalles de la pila para ver los recursos que se aprovisionaron en su cuenta.
Análisis de las capacidades de canalización
Después de crear la canalización, puede utilizar la consola de EventBridge para observar el funcionamiento de la canalización y probar la entrega de los eventos.
Abra la consola de EventBridge en https://console.aws.amazon.com/events/home?#/pipes
. -
Elija la canalización que ha creado.
En la página de detalles de la canalización, la sección Componentes de la canalización muestra los recursos que componen la canalización y contiene las pestañas que proporcionan más detalles sobre cada componente.
Puede buscar el rol de ejecución que hemos creado para la canalización en la pestaña Ajustes, en la sección Permisos.
Análisis del filtro de canalizaciones
Antes de probar el funcionamiento de la canalización, analizaremos el filtro que hemos especificado para controlar qué eventos se envían al destino. La canalización solo enviará al destino los eventos que coincidan con los criterios del filtro; todos los demás se descartarán. En este caso, solo queremos que los eventos generados cuando se crean o modifican las entradas de la tabla se envíen a la cola de Amazon SQS.
En la página de detalles de la canalización, en Componentes de canalización, seleccione la pestaña Filtrado.
Hemos incluido un filtro que selecciona solo los eventos en los que
eventNameestá definido comoINSERToMODIFY.{ "eventName": ["INSERT", "MODIFY"] }
Envío de eventos a través de la canalización
A continuación, generaremos eventos en el origen de la canalización para comprobar que el filtrado y la entrega de la canalización funcionan correctamente. Para ello, crearemos y editaremos un elemento en la tabla de DynamoDB que hemos especificado como el origen de la canalización.
En la página de detalles de la canalización, en Componentes de canalización, seleccione la pestaña Origen.
En Origen, elija el nombre del flujo de DynamoDB.
Esto abre la consola de DynamoDB en una ventana independiente, en la que se muestran los detalles de la tabla de origen.
Elija Explorar elementos de la tabla.
-
Genere un evento
INSERTmediante la creación de un elemento en la tabla:Seleccione Crear elemento.
Añada valores para los atributos Álbum y Artista.
Seleccione Crear elemento.
Genere un evento
DELETEyINSERTmediante la edición del elemento:Elija el elemento de la lista y, en el menú Acciones, seleccione Editar elemento.
Introduzca un nuevo valor para el atributo Álbum o Artista.
Marque la casilla que confirma que está cambiando el valor de las claves del elemento y, a continuación, seleccione Volver a crear elemento.
Esto hace que el elemento se elimine y, a continuación, se vuelva a crear, lo que genera un evento
DELETEy, a continuación, un nuevo eventoINSERT.
Genere un evento
MODIFYañadiendo un atributo al elemento:Elija el elemento de la lista y, en el menú Acciones, seleccione Editar elemento.
En el menú Agregar nuevo atributo, seleccione Número.
Para el nombre del atributo, introduzca Año y, a continuación, un valor para el atributo. Elija Save and close.
Confirmación de la entrega del evento a través de la canalización
Por último, confirmaremos que la tubería ha filtrado y entregado correctamente los eventos que hemos generado al crear y editar el elemento de la tabla en DynamoDB.
En la página de detalles de la canalización, en Componentes de canalización, seleccione la pestaña Destino.
En Destino, elija el nombre de la cola de Amazon SQS.
Esta acción abre la consola de Amazon SQS en una ventana independiente, en la que se muestran los detalles de la tabla de destino.
Seleccione Enviar y recibir mensajes.
En Recepción de mensajes, seleccione Sondeo de mensajes.
Amazon SQS carga los mensajes recibidos en la cola. Haga clic en un mensaje individual para ver la información detallada.
Debería haber tres mensajes de eventos en la cola:
Dos del tipo
INSERT, uno generado al crear el elemento de la tabla por primera vez y el otro al volver a crear el elemento cuando se cambia un valor clave.Uno del tipo
MODIFY, generado al añadir un atributo al elemento de la tabla.
Tenga en cuenta que no hay ningún mensaje de evento del tipo
DELETEen la cola, aunque se generó uno al eliminar y volver a crear el elemento de la tabla al cambiar un valor clave. El filtro de canalizaciones que especificamos solo seleccionaINSERTyMODIFY, por lo tanto, la canalización filtra el eventoDELETEen lugar de enviarlo a la cola.
Limpieza: eliminación de recursos
Como último paso, eliminaremos la pila y los recursos que contiene.
importante
Se le facturarán los recursos de Amazon incluidos en la pila mientras exista.
Abra la consola de CloudFormation en https://console.aws.amazon.com/cloudformation/
. -
En la página Pilas, seleccione la pila creada a partir de la plantilla, seleccione Eliminar y, a continuación, confirme Eliminar.
CloudFormation inicia la eliminación de la pila y de todos los recursos que incluye.
Detalles de la plantilla de CloudFormation
Esta plantilla crea recursos y concede permisos en su cuenta.
Recursos
La plantilla de CloudFormation para este tutorial creará los siguientes recursos en su cuenta:
importante
Si crea una pila a partir de esta plantilla, se le facturarán los recursos de Amazon que utilice.
AWS::DynamoDB::Table: una tabla de DynamoDB que actúa como origen de eventos para la canalización.AWS::SQS::Queue: una cola de Amazon SQS que actúa como destino de los eventos que pasan por la canalización.AWS::IAM::Role: un rol de ejecución de IAM que concede permisos al servicio Canalizaciones de EventBridge de su cuenta.AWS::Pipes::Pipe: es la canalización que conecta la tabla de DynamoDB con la cola de Amazon SQS.
Permisos
La plantilla incluye un recurso AWS::IAM::Role que representa un rol de ejecución. Este rol otorga al servicio de Canalizaciones de EventBridge (pipes.amazonaws.com) los siguientes permisos en su cuenta.
Los siguientes permisos se refieren a la tabla y el flujo de DynamoDB que crea la plantilla como origen de eventos para la canalización:
dynamodb:DescribeStreamdynamodb:GetRecordsdynamodb:GetShardIteratordynamodb:ListStreams
El siguiente permiso se aplica a la cola de Amazon SQS que la pila crea como destino de la canalización:
sqs:SendMessage
Plantilla de CloudFormation
Guarde el siguiente código JSON o YAML como un archivo independiente para usarlo como plantilla de CloudFormation en este tutorial.