You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何授权AWS CloudWatch Alarm调用Lambda函数?ARN报错排查

解决CloudWatch Alarm调用Lambda的权限配置问题

核心问题说明

直接把CloudWatch Alarm的ARN填到Lambda权限配置的Principal字段是错误的,CloudWatch Alarm调用Lambda时,是通过AWS服务主体而非Alarm自身ARN完成身份验证的,这就是你收到ARN无效提示的原因。

正确配置步骤

1. 明确CloudWatch的服务主体

你不需要给CloudWatch Alarm单独分配角色或账号,只需在Lambda权限策略中指定对应的服务主体:

  • 标准CloudWatch Alarm:服务主体为 events.amazonaws.com
  • 复合CloudWatch Alarm:服务主体为 cloudwatch.amazonaws.com

2. 控制台配置权限

  • 进入Lambda函数的配置页面,切换到权限标签
  • 点击添加权限,选择AWS服务作为信任实体类型
  • 在服务下拉框中选「CloudWatch Events」(对应标准Alarm)或「CloudWatch」(对应复合Alarm)
  • 操作选择lambda:InvokeFunction,资源默认选当前Lambda的ARN即可
  • 保存配置

3. AWS CLI命令配置示例(标准Alarm)

aws lambda add-permission \
  --function-name 你的Lambda函数名 \
  --statement-id cloudwatch-alarm-invoke \
  --action "lambda:InvokeFunction" \
  --principal events.amazonaws.com \
  --source-arn 你的CloudWatch Alarm完整ARN

4. 验证Alarm ARN格式

如果仍提示ARN无效,先确认格式是否正确,标准格式为:
arn:aws:cloudwatch:区域ID:账号ID:alarm:Alarm名称

关键误区澄清

CloudWatch Alarm不需要单独配置角色,它依托AWS服务身份调用Lambda。权限策略中,服务主体填到Principal,Alarm的ARN填到source-arn字段,用来限制只有指定的Alarm能触发Lambda调用。

内容的提问来源于stack exchange,提问作者NealWalters

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 12:09:51