如何通过AWS CDK为指定Lambda函数创建有效CloudWatch指标仪表盘?
解决方案:通过维度指定Lambda函数关联的自定义指标
你的问题根源有两个:
- 原代码里的Metric参数写错了(把
metricName写成了metric) - 没有添加
FunctionName维度过滤,CloudWatch找不到对应Lambda的指标
正确的CDK代码写法
直接在Metric构造器中通过dimensionsMap指定FunctionName维度,这和控制台手动选择函数的逻辑完全一致,而且没有时间范围限制:
import { Metric } from 'aws-cdk-lib/aws-cloudwatch'; // 针对你的自定义指标创建Metric实例 const lambdaCustomMetric = new Metric({ namespace: 'xxx', // 你的指标命名空间 metricName: 'yyy', // 注意:CDK中参数名是metricName,不是你原代码里的metric statistic: 'Sum', dimensionsMap: { FunctionName: 'zzz' // 关联到指定的Lambda函数 }, region: 'region' // 如果指标所在区域和CDK栈区域不同,必须指定 });
补充说明
- 关于专用类:如果是Lambda的默认内置指标(比如调用次数、执行时长),CDK的
lambda.Function类提供了封装好的方法(比如myLambdaFunction.metricInvocations()),但你这是自定义上报的指标,所以必须用通用的Metric类加上维度过滤。 - 为什么MathExpression有时间限制:MathExpression依赖CloudWatch Insights查询,确实存在查询时间范围的限制,而直接指定维度的原生Metric查询没有这个限制,支持任意时间尺度的图表展示。
内容的提问来源于stack exchange,提问作者Csaba
相关产品推荐
相关产品推荐

