如何将CloudWatch中已有的自定义指标数据传递到Lambda函数
提问内容
我已将CloudWatch数据发布到了仪表板:
我需要将该CloudWatch自定义指标数据导入Lambda函数,我想要获取的CloudWatch自定义指标具体点位参考:
请问是否有直接的方法可以实现该需求?我已经尝试在CloudWatch服务中设置事件,但暂时没有找到可行路径,可能我遗漏了某些配置。我了解到可以通过Boto3实现该需求,但考虑到数据已经存储在CloudWatch中,我希望找到更直接的传递方案,而非使用Boto3这类迂回方案。
提前感谢!
可行的直接传递方案(无需在Lambda中编写Boto3拉取逻辑)
以下三种方案均为CloudWatch原生支持的推送模式,数据直接从CloudWatch侧传递到Lambda,不需要主动调用接口拉取:
方案1:CloudWatch 告警触发(适合特定阈值点位触发场景)
如果仅需要指标满足你指定的点位条件时才触发Lambda,这是成本最低、配置最简单的方案:
- 进入CloudWatch控制台→告警→创建告警
- 选中你的目标自定义指标,设置对应点位的触发阈值(如大于/等于/小于指定数值时触发)
- 告警目标直接选择目标Lambda函数即可
触发时Lambda收到的事件 payload 会直接携带指标命名空间、指标名、当前点位数值、时间戳等全量信息,无需额外查询。
方案2:CloudWatch 指标流(适合全量/筛选指标实时推送场景)
如果需要持续将所有/指定自定义指标的新生成点位准实时推送到Lambda,可通过指标流实现:
- 进入CloudWatch控制台→流→创建指标流
- 筛选你需要推送的自定义指标范围(可按命名空间、指标名过滤)
- 目标选择「Kinesis Data Firehose」,再将Firehose的处理目标绑定为你的Lambda函数即可
指标流会自动将新生成的符合条件的指标点位结构化数据推送到Lambda,延迟最低可到分钟级。
方案3:EventBridge 定时规则+输入模板(适合固定周期拉取指定范围指标场景)
如果需要按固定时间间隔获取对应时间窗口的指标数据,可通过EventBridge的内置能力避免写Boto3查询逻辑:
- 进入EventBridge控制台→规则→创建规则
- 选择定时触发的调度周期,目标选择你的Lambda函数
- 在「配置输入」处选择「输入转换器」,将你需要查询的指标参数(命名空间、指标名、时间范围等)直接配置为固定模板注入到Lambda事件中
你仅需要在Lambda中做参数解析即可,无需编写CloudWatch接口调用逻辑。
内容的提问来源于stack exchange,提问作者Baghouse
相关产品推荐
相关产品推荐

