无需附加订阅即可调试AWS SNS消息是否成功送达的方法有哪些?
AWS SNS消息送达调试的更优方案
零配置无订阅方案:查看CloudWatch原生指标
SNS默认会向CloudWatch上报所有主题的运行指标,无需额外配置或添加订阅就能直接验证消息是否成功送达SNS:
打开CloudWatch控制台,进入「指标」-「所有指标」-「SNS」-「主题指标」,找到对应主题的NumberOfMessagesPublished指标,该指标统计的是所有成功发布到该SNS主题的消息数量,数值和你发送的消息数一致即可确认消息全部送达。
该方案完全不需要修改SNS/SQS配置,也不会产生额外的订阅费用,适合只需要确认送达状态、不需要验证消息内容的场景。轻量内容验证方案1:CLI一键订阅SQS自动配置权限
如果需要确认消息内容,不需要手动编辑SQS访问策略,直接用AWS CLI执行订阅操作即可自动注入所需权限:
提前创建好SQS队列后,执行以下命令:aws sns subscribe \ --topic-arn arn:aws:sns:xx-xx-1:999999999999:my-sns-notifier-topic \ --protocol sqs \ --notification-endpoint arn:aws:sqs:xx-xx-1:999999999999:my-sqs-queue-catcher \ --attributes RawMessageDelivery=true执行完成后AWS会自动在SQS的访问策略中添加允许对应SNS主题发消息的规则,无需手动修改JSON,调试完成后直接删除订阅和队列即可。
轻量内容验证方案2:临时邮件订阅
消息量不大的场景可以直接给SNS主题添加电子邮件订阅,输入自己的邮箱后点击确认邮件中的链接即可完成配置,所有发送到SNS的消息会直接投递到你的邮箱,能直接查看完整内容,不需要任何权限配置,调试完成后取消订阅即可。
最直接的客户端侧验证
SNS的
Publish接口只要成功返回200状态码和MessageId字段,就说明SNS已经成功接收并持久化了这条消息,不需要再做额外的服务端验证即可确认送达成功。
内容的提问来源于stack exchange,提问作者koalaok
相关产品推荐
相关产品推荐

