Aws lambda SNS到SQS与直接SQS投入Lambda@Edge应用

Aws lambda SNS到SQS与直接SQS投入Lambda@Edge应用,aws-lambda,amazon-sqs,amazon-sns,aws-lambda-edge,Aws Lambda,Amazon Sqs,Amazon Sns,Aws Lambda Edge,我正在考虑使用Lambda@Edge将从外部源生成的事件放入内部SQS队列。lambda只需在必要时对其进行转换,完成切换,然后离开。我希望这个过程尽可能快,所以我的问题是,除了SQS之外,使用SNS还有什么好处,还是我应该只使用SQS 换言之,考虑到这两种配置,一种配置对最终用户来说会更有效吗 A) 请求进入Lambda@Edge,lambda转换请求并将事件发送到SNS,SNS将事件发送到SQS B) 请求进入Lambds@Edge,lambda转换请求并将事件直接放入SQS 编辑: 我说的

我正在考虑使用Lambda@Edge将从外部源生成的事件放入内部SQS队列。lambda只需在必要时对其进行转换,完成切换,然后离开。我希望这个过程尽可能快,所以我的问题是,除了SQS之外,使用SNS还有什么好处,还是我应该只使用SQS

换言之,考虑到这两种配置,一种配置对最终用户来说会更有效吗

A) 请求进入Lambda@Edge,lambda转换请求并将事件发送到SNS,SNS将事件发送到SQS

B) 请求进入Lambds@Edge,lambda转换请求并将事件直接放入SQS

编辑:


我说的是跨地区。

跨地区,SNS到SQS的速度将大大加快,如果按照此处所述进行配置

最佳配置是在每个AWS地区创建一个同名的SNS主题,并将您的SQS队列(在一个地区大概只有一个队列)订阅到这些主题的所有地区

当Lambda@Edge触发器正在运行,代码在离查看器最近的区域中运行,
process.env.AWS\u region
将告诉您每次调用的区域

使用此信息初始化SNS客户端,并将消息发送到该区域的SNS主题。SNS将立即接受消息,但将异步地(从您的角度)跨区域传递消息到SQS队列——因此它不会阻止您完成函数。直接从Lambda触发器函数发出任何跨区域请求,无论是向SQS还是SNS,都会增加延迟