如何查看通过AWS SNS发送的SMS短信,能否通过messageId查询特定区域发送内容
AWS SNS 已发送SMS短信内容查询问题解答
可查看已发送SMS短信文本的方式
AWS SNS 默认不会持久化存储已发送的SMS短信内容,你需要提前配置相关留存规则才能查看历史发送内容,常见的配置和查看方式如下:
- CloudWatch Logs 投递查看:提前在对应AWS区域的SNS控制台配置SMS消息的CloudWatch Logs投递规则,配置完成后,所有通过该区域SNS发送的SMS短信的文本内容、接收方号码、发送状态、对应messageId都会同步写入指定的CloudWatch Logs日志组,你可以直接在CloudWatch控制台查看对应日志条目获取短信内容。
- 业务发送侧自行留存:在调用SNS发送短信的业务代码中,自行存储每次发送的短信文本、对应返回的messageId、发送区域、目标号码等信息,后续直接在自有存储系统中查询即可,这是最稳妥的查询方案。
- EventBridge 事件采集存储:配置EventBridge规则监听SNS的SMS发布事件,将事件携带的短信内容、messageId等信息投递到S3、DynamoDB等自有存储服务中,后续按需检索查询。
是否支持通过messageId查询特定区域的对应SMS短信内容
仅在你已提前完成上述留存配置的前提下可实现查询,无提前配置的情况下AWS侧无法提供历史SMS短信内容查询能力。
具体查询方式根据你的留存配置有所区别:
- 若已配置CloudWatch Logs投递,你可以进入对应区域的CloudWatch Logs控制台,在对应日志组中使用过滤语句
{$.messageId = "目标messageId"}进行检索,匹配到的日志条目会包含对应的短信文本内容。 - 若你在业务侧自行存储了发送记录,直接以messageId为检索 key 在自有存储系统中查询即可。
- 若未做任何提前留存配置,即便提供messageId和对应区域,也无法查询到历史发送的SMS短信具体内容。
内容的提问来源于stack exchange,提问作者Junie
相关产品推荐
相关产品推荐

