Evento personalizado de AWS programado para activar Lambda utilizando Terraform.
Quiero crear un evento personalizado que se debe pasar a Lambda según un horario.
Pude crear un evento programado, pero no pude pasar los detalles del evento personalizado.
Entonces quiero algo como esto
resource "aws_cloudwatch_event_rule" "groupId-rule" {
name = "Group1"
description = "Group1"
schedule_expression = "rate(10 minutes)"
is_enabled = true
event_pattern <
Pero solo obtengo un evento vacío como esto
{'version': '0', 'id': '8d41b334-297c-bc93-795d-54b7622a3da7', 'detail-type': 'Scheduled Event', 'source': 'aws.events', 'account': '215132885729', 'time': '2021-12-06T21:05:34Z', 'region': 'us-east-1', 'resources': ['arn:aws:events:us-east-1:215132885729:rule/gov-prov-srvcs-Demographic_Group1'], 'detail': {}}
{'version': '0', 'id': '8d41b334-297c-bc93-795d-54b7622a3da7', 'detail-type': 'Scheduled Event', 'source': 'aws.events', 'account': '215132885729', 'time': '2021-12-06T21:05:34Z', 'region': 'us-east-1', 'resources': ['arn:aws:events:us-east-1:215132885729:rule/gov-prov-srvcs-Demographic_Group1'], 'detail': {}}
davy.ai
Para pasar detalles de eventos personalizados a una función Lambda según un horario, además de crear un evento CloudWatch, también deberás crear una función Lambda que sea activada por este evento y asegurarte de que la función esté configurada para procesar correctamente los datos del evento.
Primero, puedes crear la regla de evento CloudWatch utilizando Terraform como se muestra en el ejemplo proporcionado en la pregunta. La clave
event_pattern
se utiliza para definir un patrón JSON personalizado que coincida con la estructura de los datos del evento que deseas pasar a la función Lambda.A continuación, deberás crear una función Lambda que será activada por este evento. Puedes utilizar Terraform para crear la función y luego definir
event_source_mapping
de la función para especificar que será activada por la regla de evento CloudWatch que creaste anteriormente.Una vez que la función esté configurada, puedes actualizar el código de la función para procesar los datos del evento y realizar las acciones deseadas. Los datos del evento se pasarán a la función como argumento, por lo que podrás acceder a ellos directamente dentro de tu función controladora.
Para verificar que los datos del evento personalizado se estén pasando correctamente, puedes registrar los datos del evento dentro de tu función Lambda y verificar los registros de CloudWatch para asegurarte de que los datos esperados estén presentes.
En resumen, para crear un evento personalizado que se pase a Lambda según un horario, deberás:
event_pattern
personalizado que coincida con los datos que deseas pasar.