Tutorial: Creación de una aplicación de muestra de Amazon EventBridge - Amazon EventBridge

Tutorial: Creación de una aplicación de muestra de Amazon EventBridge

Puede usar EventBridge para enrutar eventos a funciones de Lambda específicas mediante reglas.

En este tutorial, usará la AWS CLI, Node.js, y el código del repositorio de GitHub para crear lo siguiente:

  • Una función de AWS Lambda que produce eventos para las transacciones bancarias en cajeros automáticos.

  • Tres funciones de Lambda para usar como destinos de una regla de EventBridge.

  • y la regla que enruta los eventos creados a la función descendente correcta en función de un patrón de eventos.

En este ejemplo, se utilizan plantillas de AWS SAM para definir las reglas de EventBridge. Para obtener más información sobre el uso de plantillas de AWS SAM con EventBridge, consulte Uso de plantillas de AWS Serverless Application Model para implementar los recursos de Amazon EventBridge.

En el repositorio, el subdirectorio atmProducer contiene handler.js, que representa el servicio de cajero automático que produce eventos. Este código es un controlador de Lambda escrito en Node.js y publica eventos en EventBridge a través del SDK de AWS mediante esta línea de código JavaScript.

const result = await eventbridge.putEvents(params).promise()

Este directorio también contiene events.js, una lista de varias transacciones de prueba en una matriz de entradas. Un único evento se define en JavaScript de la siguiente manera:

{ // Event envelope fields Source: 'custom.myATMapp', EventBusName: 'default', DetailType: 'transaction', Time: new Date(), // Main event body Detail: JSON.stringify({ action: 'withdrawal', location: 'MA-BOS-01', amount: 300, result: 'approved', transactionId: '123456', cardPresent: true, partnerBank: 'Example Bank', remainingFunds: 722.34 }) }

La sección Detalle del evento especifica los atributos de la transacción. Incluyen la ubicación del cajero automático, el importe, el banco asociado y el resultado de la transacción.

El archivo handler.js del subdirectorio atmConsumer contiene tres funciones:

exports.case1Handler = async (event) => { console.log('--- Approved transactions ---') console.log(JSON.stringify(event, null, 2)) } exports.case2Handler = async (event) => { console.log('--- NY location transactions ---') console.log(JSON.stringify(event, null, 2)) } exports.case3Handler = async (event) => { console.log('--- Unapproved transactions ---') console.log(JSON.stringify(event, null, 2)) }

Cada función recibe eventos de transacciones, que se registran a través de las instrucciones de console.log en Registros de Amazon CloudWatch. Las funciones de consumo funcionan de forma independiente del productor y desconocen el origen de los eventos.

La lógica de enrutamiento está incluida en las reglas de EventBridge que implementa la plantilla de AWS SAM de la aplicación. Las reglas evalúan el flujo entrante de eventos y enrutan los eventos coincidentes a las funciones de Lambda de destino.

Las reglas utilizan patrones de eventos que son objetos JSON con la misma estructura que los eventos con los que coinciden. Este es el patrón de eventos de una de las reglas.

{ "detail-type": ["transaction"], "source": ["custom.myATMapp"], "detail": { "location": [{ "prefix": "NY-" }] } }

Requisitos previos

Para completar este tutorial necesitará los siguientes recursos:

Paso 1: Crear una aplicación

Para configurar la aplicación de ejemplo, usará la AWS CLI y Git para crear los recursos de AWS que necesitará.

Para crear la aplicación
  1. Inicie sesión en AWS.

  2. Instale Git e instale la CLI de AWS Serverless Application Model en su máquina local.

  3. Cree un directorio nuevo y, a continuación, vaya a ese directorio en un terminal.

  4. En la línea de comandos, introduzca git clone https://github.com/aws-samples/amazon-eventbridge-producer-consumer-example.

  5. En la línea de comandos, ejecute el comando siguiente:

    cd ./amazon-eventbridge-producer-consumer-example sam deploy --guided
  6. Haga lo siguiente en el terminal:

    1. En Stack Name, escriba un nombre para la pila. Por ejemplo, llame a la pila Test.

    2. En AWS Region, introduzca la región. Por ejemplo, us-west-2.

    3. En Confirm changes before deploy, introduzca Y.

    4. En Allow SAM CLI IAM role creation, introduzca Y

    5. En Save arguments to configuration file, introduzca Y

    6. En SAM configuration file, introduzca samconfig.toml.

    7. En SAM configuration environment, introduzca default.

Paso 2: Ejecutar la aplicación

Ahora que ha configurado los recursos, utilizará la consola para probar las funciones.

Cómo ejecutar la aplicación
  1. Abra la Consola de Lambda en la misma región en la que implementó la aplicación de AWS SAM.

  2. Hay cuatro funciones de Lambda con el prefijo atm-demo. Seleccione la función atmProducerFn y, a continuación, elija Acciones, Prueba.

  3. Escriba Test en Nombre.

  4. Seleccione Probar.

Paso 3: Verificar los registros y el funcionamiento de la aplicación

Ahora que ha ejecutado la aplicación, utilizará la consola para comprobar los Registros de CloudWatch.

Para consultar los registros
  1. Abra la Consola de CloudWatch en la misma región en la que implementó la aplicación de AWS SAM.

  2. Elija Logs (Registros) y, a continuación, elija Log groups (Grupo de registro).

  3. Seleccione el grupo de registro que contiene atmConsumerCase1. Verá dos flujos que representan las dos transacciones aprobadas por el cajero automático. Elija el flujo de registro para ver el resultado.

  4. Vuelva a la lista de grupos de registro y, a continuación, seleccione el grupo de registro que contiene atmConsumerCase2. Verá dos flujos que representan las dos transacciones que coinciden con el filtro de ubicación Nueva York.

  5. Vuelva a la lista de grupos de registro y, a continuación, seleccione el grupo de registro que contiene atmConsumerCase3. Abra el flujo para ver las transacciones denegadas.

Paso 4: 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
  1. Abra la página Reglas en la consola de EventBridge.

  2. Seleccione las reglas que creó.

  3. Elija Eliminar.

  4. Elija Eliminar.

Para eliminar las funciones de Lambda
  1. Abra la página de Funciones en la consola de Lambda.

  2. Seleccione las funciones que creó.

  3. Elija Actions (Acciones), Delete (Eliminar).

  4. Elija Eliminar.

Para eliminar los grupos de registro de Registros de CloudWatch
  1. Abra la consola de CloudWatch.

  2. Elija Registros, Grupos de registro.

  3. Seleccione los grupos de registro que se crearon en este tutorial.

  4. Elija Acciones, Eliminar grupo(s) de registro(s).

  5. Elija Eliminar.