如何通过AWS SNS服务读取已发送短信的回复?
AWS SNS 读取已发送短信回复的方法
AWS SNS支持接收短信回复,以下是具体实现方式:
1. 配置回复消息接收端点
你需要将短信回复消息转发到指定的AWS服务端点(如SQS队列、Lambda函数或HTTP/S端点),操作步骤如下:
- 通过AWS控制台或CLI,为你的SNS短信配置
AWS.SNS.SMS.ReplyTopicArn属性,指定一个SNS主题作为回复消息的中转节点。 - 让这个中转主题订阅你想要处理回复的目标服务(比如订阅SQS队列存储回复,或订阅Lambda函数直接处理内容)。
- 示例CLI命令:
aws sns set-sms-attributes --attributes '{"AWS.SNS.SMS.ReplyTopicArn": "arn:aws:sns:us-east-1:123456789012:your-reply-topic"}'
2. 处理回复消息
当用户回复你的短信时,SNS会自动将回复内容发送到你配置的端点,消息包含以下关键信息:
- 原发送短信的消息ID
- 回复者的手机号码
- 回复的具体文本内容
- 示例Lambda函数接收的消息结构(简化版):
{ "Message": "{\"originationNumber\":\"+1234567890\",\"messageBody\":\"回复内容\",\"destinationNumber\":\"+0987654321\",\"messageId\":\"12345678-1234-1234-1234-123456789012\"}" }
注意事项
- 并非所有地区的运营商都支持短信回复功能,需提前确认目标地区的兼容性。
- 确保你的AWS IAM角色拥有对应权限:比如SNS的
Publish权限(用于转发回复)、SQS的ReceiveMessage权限(用于读取队列中的回复)等。 - 如果使用SMS沙箱环境,必须先验证接收回复的手机号码,否则无法接收回复。
内容的提问来源于stack exchange,提问作者kuollam
相关产品推荐
相关产品推荐

