AWS CloudWatch Alarm多FunctionName维度CloudFormation创建失败咨询
问题解答
1. 语法是否正确?
不正确。你模板里重复定义了三个Name: FunctionName的维度,而CloudWatch要求告警的Dimensions列表中每个维度名称必须唯一,这直接触发了ValidationError,导致栈创建失败。
2. 是否支持多个相同的FunctionName维度?
不支持。CloudWatch告警的维度集合里,每个维度名称只能出现一次,没法通过重复同名维度来监控多个Lambda函数。
正确实现方法:用多指标告警聚合监控
要实现“任一Lambda出错就告警”的需求,你需要改用多指标告警(Multi-Metric Alarm),通过聚合多个Lambda的错误指标来实现,示例模板如下:
ErrorNotificationAlarm: Type: 'AWS::CloudWatch::Alarm' Properties: AlarmDescription: Send error notification when any Lambda has errors AlarmActions: - !Ref ErrorTopic Metrics: - Id: m1 MetricStat: Metric: Namespace: AWS/Lambda MetricName: Errors Dimensions: - Name: FunctionName Value: invoice-lambda-function Period: 60 Stat: Sum ReturnData: false - Id: m2 MetricStat: Metric: Namespace: AWS/Lambda MetricName: Errors Dimensions: - Name: FunctionName Value: bill-lambda-function Period: 60 Stat: Sum ReturnData: false - Id: m3 MetricStat: Metric: Namespace: AWS/Lambda MetricName: Errors Dimensions: - Name: FunctionName Value: payment-lambda-function Period: 60 Stat: Sum ReturnData: false - Id: total_errors Expression: "SUM(m1, m2, m3)" Label: Total Errors Across Lambdas ReturnData: true Threshold: 0 ComparisonOperator: GreaterThanThreshold EvaluationPeriods: 1
这个配置会分别获取三个Lambda的错误指标,再通过表达式计算总错误数,只要总错误数大于0(即任一Lambda出错),就会触发告警。
内容的提问来源于stack exchange,提问作者Madhava Reddy
相关产品推荐
相关产品推荐

