Tutorial: ScheduleAWS LambdaUso de 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: ScheduleAWS LambdaUso de EventBridge

Puede configurar unaRegla dePara ejecutar unAWS LambdaEn función de una programación. Este tutorial muestra cómo utilizar la AWS Management Console o la AWS CLI para crear la regla. Si desea utilizar laAWS CLIpero no la haya instalado, consulte laInstalar, actualizar y desinstalar elAWS CLIversión 2.

Para programaciones, EventBridge no proporciona precisión de segundo nivel enProgramación de expresiones. La mejor resolución al utilizar una expresión cron es un minuto. Debido a la naturaleza distribuida de EventBridge y de los servicios de destino, puede haber 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: Creación de unAWS Lambdafunción

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.

  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 predeterminados y elijaCreación de función de.

  6. En la páginaCodeEn la página de funciones, haga doble clic enindex.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 ha creado en el paso 1 de manera programada.

Puede utilizar la consola de o laAWS CLIPara crear la regla. Para utilizar elAWS CLIEn primer lugar, concede permiso a la regla para invocar su función de Lambda. A continuación, puede crear la regla y añadir la función de Lambda como destino.

Para crear una regla (consola de)

  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.

  5. En Define pattern (Definir patrón), haga lo siguiente:

    1. Elija Schedule.

    2. SeleccionarFixed rate caday especifique el intervalo de programación, por ejemplo, 5 minutos.

  6. En Select event bus (Seleccionar bus de eventos), elija AWS default event bus (Bus de eventos predeterminado). Las reglas programadas solo se admiten en el bus de eventos predeterminado.

  7. En Target (Destino), elijaLambda function (Función Lambda).

  8. ParaFunción, seleccione la función de Lambda que ha creado en el paso 1.

  9. Seleccione Create (Crear).

Para crear una regla (AWS CLI)

  1. Para crear una regla que se ejecute de manera programada, utilice laput-rulecomando.

    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 el principal de servicio EventBridge (events.amazonaws.com) para ejecutar la regla, utilice eladd-permissioncomando.

    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. Para añadir la función de Lambda que ha creado en el paso 1 a la regla, utilice la función de Lambda que ha creado enput-targetscomando.

    aws events put-targets --rule my-scheduled-rule --targets file://targets.json
  4. Cree el archivo targets.json con el siguiente contenido.

    [ { "Id": "1", "Arn": "arn:aws:lambda:us-east-1:123456789012:function:LogScheduledEvent" } ]

Paso 3: Comprobación de la regla

Espere al menos cinco minutos después de completar el paso 2 y, a continuación, puede comprobar que se invocó la función de Lambda.

Para probar la regla

  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 el nombre de la regla que ha creado en el paso 2 y, a continuación, elijaMétricas de la regla.

  4. Para ver la salida de la función de Lambda, haga lo siguiente:

    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 de 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: Confirme éxito

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

Paso 5: Limpiar los recursos de

A menos que desee conservar los recursos que creó para este tutorial, puede eliminarlos ahora. Al eliminarAWSque ya no utilice, se evita gastos innecesarios en suAWSaccount.

Para eliminar las reglas de EventBridge

  1. Abra el iconoPágina Reglasde la consola de EventBridge.

  2. Seleccione la o las reglas que ha creado.

  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 la o las funciones que ha creado.

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

  4. Elija Eliminar.