es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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': {}}

Tags:  , ,

Answer

  1. Avatar for 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:

    1. Utilizar Terraform para crear una regla de evento CloudWatch con un event_pattern personalizado que coincida con los datos que deseas pasar.
    2. Utilizar Terraform para crear una función Lambda que sea activada por este evento.
    3. Actualizar el código de la función para procesar los datos del evento.
    4. Verificar que los datos del evento se estén pasando correctamente registrándolos dentro de la función Lambda y revisando los registros de CloudWatch.

Comments are closed.