Sau*_*hah 24 amazon-sqs amazon-web-services amazon-sns aws-lambda
如果有人可以帮忙解释,我正试图了解我的工作流程中是否需要SQS.在我的应用程序中,当采取行动时,它会向SNS主题提交信息,该主题调用LAMBDA进行一些处理.这很好用.
当我在网上进行研究时,似乎人们在这个堆栈中使用SQS,而SNS会在SQS上放置信息,然后SQS会调用LAMBDA.
我想我想要了解的是需要SQS.添加什么值,或者换句话说,通过直接从SNS调用我的LAMBDA,我失去了什么?
Ara*_*nde 28
在SNS和Lambda之间使用SQS的唯一优势是重新处理.假设Lambda由于某种原因(例如超时或内存占用不足)无法处理某些事件,您可以增加超时(最多5分钟)或内存(最大1.5GB)并重新启动轮询,您可以重新处理较老的事件.
对于Lambda的SNS,这是不可能的,其中如果Lambda失败,则事件丢失.即使你配置了DLQ,你仍然需要单独阅读并处理消息
因此,如果您的活动很重要并且您不想错过它们,那么请选择SNS - SQS - Lambda
说过SQS不能像SNS那样触发lambda.您必须经常轮询SQS
编辑:
AWS宣布SQS在2018年8月28日触发Lambda支持.因此不再需要频繁轮询队列.SQS的新项目可以触发Lambda
小智 6
我认为 2019 年发生了一些变化,SQS 可以通过@alexs 提到的事件源映射触发 lambda。相关博文:https : //aws.amazon.com/about-aws/whats-new/2018/04/aws-lambda-now-supports-amazon-sqs-as-event-source/
总而言之,您可以使用 SQS 到 lambda 具有以下好处:
您可以选择使用 SNS:
在这两种情况下,都可能有重复的消息(在重试的情况下)并且无法保证顺序。如果您需要,请考虑 Kinesis 流。
SQS 不调用 Lambda。SQS 无法调用任何东西。将 Lambda 与 SQS 结合使用的人们在事件计时器上运行 Lambda,例如每分钟一次,并且每次该函数运行时都会轮询 SQS 以查看是否有消息需要处理。
如果您不需要对事物进行排队并防止太多 Lambda 函数同时运行,那么您不需要像 SQS 这样的队列系统。
| 归档时间: |
|
| 查看次数: |
9204 次 |
| 最近记录: |