Tutorial: Programación de funciones de AWS Lambda con EventBridge - 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: Programación de funciones de AWS Lambda con EventBridge

Puede configurar una regla para ejecutar una función de AWS Lambda conforme a una programación. Este tutorial muestra cómo utilizar la AWS Management Console o la AWS CLI para crear la regla. Si desea utilizar la AWS CLI pero no la ha instalado, consulte Instalación, actualización y desinstalación de la versión 2 de la AWS CLI.

Para programaciones, EventBridge no proporciona precisión de segundo nivel en expresiones de programación. La mejor resolución al utilizar una expresión cron es 1 minuto. Debido a la naturaleza distribuida de EventBridge y los servicios de destino, puede producirse un retraso de varios segundos entre el momento en que la regla programada se activa y el momento en que el servicio de destino ejecuta el recurso de destino.

Paso 1: Crear una función Lambda

Cree una función Lambda para registrar los eventos programados.

Para crear una función Lambda
  1. Abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/.

  2. Elija Create function (Crear función).

  3. Elija Author from scratch (Crear desde cero).

  4. Introduzca un nombre y la descripción de la función Lambda. Por ejemplo, asigne un nombre a la función LogScheduledEvent.

  5. Deje el resto de las opciones como predeterminadas y elija Crear función.

  6. En la pestaña Código de la página de funciones, haga doble clic en index.js.

  7. Sustituya el código existente por el código siguiente.

    'use strict'; exports.handler = (event, context, callback) => { console.log('LogScheduledEvent'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
  8. Elija Deploy (Implementar).

Paso 2: Crear una regla

Cree una regla para ejecutar la función de Lambda que creó en el paso 1 conforme a una programación.

Puede utilizar la consola o la AWS CLI para crear la regla. Para usar la AWS CLI, primero debe conceder permiso a la regla para invocar su función de Lambda. A continuación, puede crear la regla y agregar la función de Lambda como destino.

Para crear una regla (consola)
  1. Abra la consola de Amazon EventBridge en https://console.aws.amazon.com/events/.

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

  3. Elija Create rule.

  4. Escriba un nombre y una descripción de la regla.

    Una regla no puede tener el mismo nombre que otra regla de la misma región y del mismo bus de eventos.

  5. En Event bus (Bus de eventos), elija el bus de eventos que desea asociar a esta regla. Si desea que esta regla coincida con eventos procedentes de su cuenta, seleccione Bus de eventos predeterminado de AWS. Cuando un servicio de AWS en su cuenta emite un evento, siempre va al bus de eventos predeterminado de su cuenta.

  6. En Rule type (Tipo de regla), elija Schedule (Programación).

  7. Elija Next (Siguiente).

  8. En Patrón de programación, elija Una programación que se ejecute con una frecuencia regular, por ejemplo, cada 10 minutos. e introducir 5 y elegir Minutos en la lista desplegable.

  9. Elija Next (Siguiente).

  10. En Target types (Tipos de destino), elija AWS service.

  11. En Seleccionar un destino, elija Función de Lambda en la lista desplegable.

  12. En Función, seleccione la función de Lambda que creó en la sección Paso 1: Crear una función de Lambda. En este ejemplo, seleccione LogScheduledEvent.

  13. Elija Next (Siguiente).

  14. Elija Next (Siguiente).

  15. Revise los detalles de la regla y elija Create rule (Crear regla).

Para crear una regla (AWS CLI)
  1. Para crear una regla que se ejecute según una programación, utilice el comando put-rule.

    aws events put-rule \ --name my-scheduled-rule \ --schedule-expression 'rate(5 minutes)'

    Cuando se ejecuta esta regla, crea un evento y, a continuación, lo envía a los destinos. El siguiente es un evento de ejemplo.

    { "version": "0", "id": "53dc4d37-cffa-4f76-80c9-8b7d4a4d2eaa", "detail-type": "Scheduled Event", "source": "aws.events", "account": "123456789012", "time": "2015-10-08T16:53:06Z", "region": "us-east-1", "resources": [ "arn:aws:events:us-east-1:123456789012:rule/my-scheduled-rule" ], "detail": {} }
  2. Para conceder a la entidad principal del servicio (events.amazonaws.com) de EventBridge permiso para ejecutar la regla, utilice el comando add-permission.

    aws lambda add-permission \ --function-name LogScheduledEvent \ --statement-id my-scheduled-event \ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com \ --source-arn arn:aws:events:us-east-1:123456789012:rule/my-scheduled-rule
  3. Cree el archivo targets.json con el siguiente contenido.

    [ { "Id": "1", "Arn": "arn:aws:lambda:us-east-1:123456789012:function:LogScheduledEvent" } ]
  4. Para agregar a la regla la función de Lambda que creó en el paso 1, utilice el comando put-targets.

    aws events put-targets --rule my-scheduled-rule --targets file://targets.json

Paso 3: Comprobar la regla

Al menos cinco minutos después de completar el paso 2, puede comprobar que se invocó la función de Lambda.

Para ver la salida de la función de Lambda
  1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, elija Logs.

  3. Seleccione el nombre del grupo de registros para la función Lambda (/aws/lambda/function-name).

  4. Seleccione el nombre del flujo de registro para ver los datos proporcionados por la función para la instancia que ha lanzado.

Paso 4: Confirmar el éxito

Si ve el evento de Lambda en los registros de CloudWatch, significa que ha completado correctamente este tutorial. Si el evento no está en sus registros de CloudWatch, comience a solucionar problemas verificando que la regla se haya creado correctamente y, si la regla parece correcta, compruebe que el código de la función de Lambda sea correcto.

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
  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 Functions (Funciones) en la consola de Lambda.

  2. Seleccione las funciones que creó.

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

  4. Elija Eliminar.