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: ProgramarAWS Lambda funciones mediante EventBridge
Puede configurar una regla para ejecutar una AWS Lambdafunción según un cronograma. Este tutorial muestra cómo utilizar la AWS Management Console o la AWS CLI para crear la regla. Si desea utilizar elAWS CLI pero no lo ha instalado, consulte Instalación, actualización y desinstalación de laAWS CLI versión 2.
En el caso de las programación, 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 los servicios de destino, puede haber un retraso de varios segundos entre el momento en que la regla programada se activa EventBridge y el momento en que el servicio de destino ejecuta el recurso 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.
Pasos:
Paso 1: Crear una función Lambda
Cree una función Lambda para registrar los eventos programados.
Para crear una función Lambda
Abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/
. -
Elija Create function (Crear función).
-
Elija Author from scratch (Crear desde cero).
-
Introduzca un nombre y la descripción de la función Lambda. Por ejemplo, asigne un nombre a la función
LogScheduledEvent
. -
Deje el resto de las opciones como predeterminadas y seleccione Crear función.
-
En la pestaña Código de la página de funciones, haga doble clic en index.js.
-
Reemplace el código existente con 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'); };
-
Elija Deploy (Implementar).
Paso 2: Crear una regla
Cree una regla para ejecutar la función Lambda que ha creado en el paso 1 de manera programada.
Puede utilizar la consola o la consolaAWS CLI para crear la regla. Para utilizar la función LambdaAWS CLI, debe conceder permiso a la regla para invocar su función Lambda. A continuación, puede crear la regla y agregar la función de Lambda como destino.
Creación de una regla (consola)
Abre la EventBridge consola de Amazon en https://console.aws.amazon.com/events/
. -
En el panel de navegación, seleccione Rules (Reglas).
-
Elija Create rule.
-
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.
-
En Event bus (Bus de eventos), elija el bus de eventos que desea asociar a esta regla. Si quiere que esta regla coincida con eventos procedentes de su cuenta, seleccione AWSdefault event bus (Bus de eventos default). Cuando un servicio de AWS en su cuenta emite un evento, siempre va al bus de eventos predeterminado de su cuenta.
-
En Rule type (Tipo de regla), elija Schedule (Programación).
-
Elija Next (Siguiente).
-
En Patrón de programación, elija A frecuencia regular, such as every 10 minutes (Una programación que se ejecuta a una frecuencia regular, como cada 10 minutos). e ingrese
5
y elija Minutos en la lista desplegable desplegable. -
Elija Next (Siguiente).
-
En Target types (Tipos de destino), elija AWS service.
-
En Seleccionar un destino, elija la función Lambda en la lista desplegable desplegable.
-
En Función, seleccione la función Lambda que creó en la sección Paso 1: Crear una función Lambda. En este ejemplo, seleccione
LogScheduledEvent
. -
Elija Next (Siguiente).
-
Elija Next (Siguiente).
-
Revise los detalles de la regla y elija Create rule (Crear regla).
Para crear una regla (AWS CLI)
-
Para crear una regla que se ejecute según un cronograma, utilice el
put-rule
comando.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": {} }
-
Para conceder permiso al EventBridge servicio principal (
events.amazonaws.com
) para ejecutar la regla, utilice eladd-permission
comando.aws lambda add-permission \ --function-name
LogScheduledEvent
\ --statement-idmy-scheduled-event
\ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com \ --source-arn arn:aws:events:us-east-1
:123456789012
:rule/my-scheduled-rule
-
Cree el archivo
targets.json
con el siguiente contenido.[ { "Id": "1", "Arn": "arn:aws:lambda:
us-east-1
:123456789012
:function:LogScheduledEvent
" } ] -
Para añadir la función Lambda que creó en el paso 1 a la regla, utilice el
put-targets
comando.aws events put-targets --rule
my-scheduled-rule
--targets file://targets.json
Paso 3: comprobar la regla comprobar la regla
Espere al menos cinco minutos después de completar el paso 2, puede comprobar que la función Lambda se ha invocado.
Vea la salida de su función Lambda.
Abra la CloudWatch consola en https://console.aws.amazon.com/cloudwatch/
. -
En el panel de navegación, elija Logs (Registros).
-
Seleccione el nombre del grupo de registros para la función Lambda (
/aws/lambda/
).function-name
-
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 Lambda en los CloudWatch registros, ha completado correctamente este tutorial. Si el evento no figura en sus CloudWatch registros, inicie la solución de 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: eliminar los recursos necesarios
A menos que desee conservar los recursos que creó para este tutorial, puede eliminarlos ahora. Si elimina losAWS recursos que ya no utiliza, evitará gastos innecesarios en suAWS cuenta.
Para eliminar la (s) EventBridge regla (s)
-
Abre la página de reglas
de la EventBridge consola. -
Seleccione las reglas que ha creado.
-
Elija Eliminar.
-
Elija Eliminar.
Para eliminar las funciones Lambda (s) Para eliminar las funciones Lambda
-
Abra la página de Functions
(Funciones) en la consola de Lambda. -
Seleccione las funciones que ha creado.
-
Elija Actions (Acciones), Delete (Eliminar).
-
Elija Eliminar.