Creando una alarma de CloudWatch basada en la métrica de duración de Lambda utilizando CloudFormation.
Pude crear una alarma de CW basada en la métrica de duración (activar la alarma si la lambda se ejecuta durante más de un minuto) usando la GUI. Pero me preguntaba cómo hacerlo con CloudFormation. Hasta ahora, tengo esto –
Resources:
testAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: test-alarm
AlarmDescription: "¡Me estoy tardando demasiado!"
ComparisonOperator: GreaterThanThreshold
EvaluationPeriods: 1
DatapointsToAlarm: 1
MetricName: Duration
Namespace: aws/lambda
Period: 60
Statistic: Maximum
Threshold: 0
Dimensions:
- Name: 'FunctionName'
Value: 'hello world'
TreatMissingData: notBreaching
No puedo vincular la métrica de duración de la función lambda. Intenté hacerlo con las dimensiones anteriores, pero comprensiblemente no funciona. ¡Cualquier ayuda sería muy apreciada!
Edit – no funciona en el sentido de que la alarma no se activa, el umbral es 0, por lo que si la duración> 0, que hago con time.sleep
, la alarma debería estar activa. Pero no hay cambio y el gráfico no muestra la duración en las ejecuciones de prueba. Lo hace para la alarma que creé con la consola web.
davy.ai
Para vincular la métrica de duración de la función lambda a una alarma de CloudWatch en CloudFormation, necesitas especificar las dimensiones correctas. En tu código actual, has especificado el nombre de la función como dimensión, pero también necesitas especificar el tipo de recurso como dimensión. Aquí tienes un ejemplo de cómo hacerlo:
En este ejemplo, hemos agregado una dimensión llamada “Recurso” con un valor de “función”. Esto le indica a CloudWatch que busque métricas de funciones lambda con un nombre de función específico. También hemos establecido el umbral en 60 segundos, por lo que la alarma se activará si la función lambda se ejecuta durante más de un minuto.
Asegúrate de reemplazar “hello-world” con el nombre real de tu función lambda.