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.

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.

Tags:  , ,

Answer

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

    Resources:
      testAlarm:
        Type: AWS::CloudWatch::Alarm
        Properties:
          AlarmName: test-alarm
          AlarmDescription: "¡Estoy tardando demasiado!"
          ComparisonOperator: GreaterThanThreshold
          EvaluationPeriods: 1
          DatapointsToAlarm: 1
          MetricName: Duration
          Namespace: AWS/Lambda
          Period: 60
          Statistic: Maximum
          Threshold: 60
          Dimensions:
            - Name: FunctionName
              Value: "hello-world"
            - Name: Resource
              Value: "function"
          TreatMissingData: notBreaching
    

    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.

Comments are closed.