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

如何排查发送AWS SNS短信的应用或获取失败短信内容?

解决AWS SNS测试号码短信请求溯源问题

一、通过消息ID获取短信内容

AWS SNS本身不会存储已发送短信的内容,但如果开启了CloudTrail日志,可按以下方式查找:

  • 打开CloudTrail控制台,筛选事件名称为Publish(对应SNS发送消息的API调用),并按目标消息ID过滤。
  • 在CloudTrail的事件详情中,requestParameters字段会包含短信的Message内容,同时附带调用该API的相关资源信息。

二、定位请求来源应用

1. 从CloudTrail日志直接溯源

每个SNS Publish请求的CloudTrail事件里,userIdentity字段会显示发起请求的身份:

  • 若为Lambda函数发起,会显示Lambda执行角色的ARN,结合ARN中的函数名称即可定位到具体函数。
  • 若为EC2实例发起,会显示EC2实例绑定的IAM角色ARN,通过角色关联的实例ID可找到对应的EC2应用。
  • 另外,sourceIPAddress字段可区分请求来源:EC2实例会显示实例的公网/内网IP,Lambda则会显示AWS服务IP段或lambda.amazonaws.com。

2. 检查SNS主题关联配置

如果是通过SNS主题统一发送短信而非直接调用Publish接口:

  • 查看目标主题的订阅列表,确认哪些Lambda/EC2应用有权限向该主题发送消息。
  • 检查CloudWatch Events或EventBridge的触发规则,确认是否存在自动触发SNS发送的规则,这类规则可能未添加测试号码过滤逻辑。

三、排查代码过滤逻辑漏洞

  • 确认所有应用的测试号码过滤逻辑覆盖了所有发送分支:比如异常处理分支、异步调用流程是否跳过了过滤判断。
  • 检查号码格式处理逻辑:比如代码中判断的是带分隔符的999-999-9999,但实际请求中号码可能是无分隔符的9999999999,导致过滤失效。
  • 建议在代码中添加额外日志,记录发送请求的号码、调用方标识(如Lambda函数名、EC2应用名称),方便后续快速定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:14:57