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

如何通过AWS Lambda测试事件向SNS主题发消息?测试触发失败排查

核心原因

你踩了Lambda调用类型的规则坑:你配置的「运行失败触发SNS」是异步调用专属的失败目标(On-failure destination),这个规则只在Lambda被异步触发时才生效。
你在控制台点「Test」按钮发起的是同步调用,同步调用的报错会直接把结果返回给调用方(也就是你当前打开的控制台页面),完全不会走异步调用的失败投递流程,当然不会触发SNS。

验证配置是否正常的方法

你现有配置(SNS邮箱订阅、Lambda执行角色SNS权限)都没问题,只要用异步方式触发一次失败调用就能验证SNS通知正常:

  • 用AWS CLI执行异步调用命令,把命令里的函数名替换成你自己的即可:
    aws lambda invoke --function-name 替换为你的Lambda函数名 --invocation-type Event --payload '{"test":1}' out.json
    命令里的--invocation-type Event就是指定异步调用,执行后等待数秒,你订阅的邮箱就能收到失败通知。
  • 也可以给Lambda绑定异步触发源(比如EventBridge定时规则、S3上传事件),通过触发源发起调用,失败时也会正常投递SNS消息。
补充说明

如果你需要同步调用场景(包括控制台Test、API网关同步触发、SDK同步调用)下的失败也发通知,不要使用异步失败目标配置,可选择以下两个方案:

  • 配置CloudWatch告警监控Lambda的Errors指标,告警触发时直接发送SNS通知
  • 给Lambda配置死信队列(DLQ),同步/异步调用的失败事件都会投递到DLQ,再配置DLQ的触发逻辑发送通知即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:18:13