AWS SNS事件的Records是否始终为单元素列表?
AWS SNS事件的Records列表是否始终仅包含单个元素?
嘿,这个问题问得好!答案是肯定的——AWS SNS触发的事件里,Records列表始终只会包含单个元素。
这是因为SNS的通知逻辑是每条消息单独触发一次下游服务(比如Lambda)的执行,不会将多条消息打包进同一个事件对象中。所以你看到的那些直接通过索引[0]读取消息的示例代码,完全是安全可靠的,不用担心出现数组越界或者漏读消息的情况。
读取SNS消息的示例代码
Node.js版本
const message = event.Records[0].Sns.Message;
Python版本
message = event['Records'][0]['Sns']['Message']
顺便提一句:如果是其他AWS服务(比如SQS批量触发场景),Records列表可能会包含多个元素,但SNS的触发机制天生就是单条消息对应一个事件,所以放心用[0]就没问题啦。
内容的提问来源于stack exchange,提问作者Sam Murphy
相关产品推荐
相关产品推荐

