使用 cloudformation 基于 lambda 持续时间指标创建 cloudwatch 警报

Posted

技术标签:

【中文标题】使用 cloudformation 基于 lambda 持续时间指标创建 cloudwatch 警报【英文标题】:Creating cloudwatch alarm based on lambda duration metric using cloudformation 【发布时间】:2022-01-01 15:24:01 【问题描述】:

我能够使用 GUI 根据持续时间指标创建 cw 警报(如果 lambda 运行超过一分钟,则发出警报)。但我想知道如何使用 cloudformation 做到这一点。到目前为止,我有这个 -

Resources:
  testAlarm:
    Type: AWS::CloudWatch::Alarm
    Properties:
      AlarmName: test-alarm
      AlarmDescription: "I'm taking too long!"
      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

我无法关联 lambda 函数的持续时间指标。我尝试使用上面的尺寸来做到这一点,但可以理解的是它不起作用。任何帮助将不胜感激!

编辑 - 不起作用,因为警报没有打开,阈值为 0,所以如果我对time.sleep 执行的持续时间>0,则警报应该处于活动状态。但是没有变化,图表也没有描述测试运行的持续时间。我使用 Web 控制台创建的警报就是这样做的。

【问题讨论】:

“不起作用”并不具体。为什么如果失败?有任何错误信息吗?请详细说明您认为失败的原因,并解释所需的输出。 不起作用,因为警报没有打开。阈值为 0,因此如果我对time.sleep 所做的持续时间>0,则警报应该处于活动状态。但是没有变化,图表也没有描述测试运行的持续时间。我使用 Web 控制台创建的警报就是这样做的。 您能否提供手动创建的警报的屏幕截图以及CFN创建的警报的详细信息? Web console CFN 谢谢!!我注意到了不同之处,aws/lambda 的情况不同,应该是 AWS/Lambda。我认为应该有额外的步骤来链接 lambda 指标。 没问题。很高兴它成功了。如果你不介意我会提供答案。我们将不胜感激。 【参考方案1】:

根据 cmets,问题在于它应该是:

Namespace: AWS/Lambda

然后

Namespace: aws/lambda

【讨论】:

以上是关于使用 cloudformation 基于 lambda 持续时间指标创建 cloudwatch 警报的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Cloudformation 中编写基于资源的策略

通过 cloudformation 使用 aws `cdk synth` 输出

扩大 Cloudformation 模板

如何遍历 CloudFormation 模板中的值

关于idea中使用lamb表达式报错:ambda expressions are not supported at this language level

Lamb表达式匿名类实现接口方法