从一个SQS触发器触发多个Lambda函数

问题描述 投票:0回答:1

我不确定我是否了解AWS Lambda-SQS触发器正确。我能否以一种SQS队列可以根据消息正文或消息属性触发不同的lambda函数的方式进行配置?

我的用例:我有三个不同的lambda函数(processCricket,processFootball,processTennis),每个函数都执行一个唯一的功能。我只有一个队列(processGame),可以接收消息。队列中的每个消息都有一个“类型”属性,该属性可以是“板球”,“足球”或“网球”。我可以根据消息的“类型”调用不同的lambda函数吗?

选项1:将SQS配置为根据类型触发不同的Lambda函数(不确定是否可以这样做)

选项2:配置一个可以检查类型的lambda函数,然后根据其类型调用其他lambda函数

选项3:为每个lambda创建单独的队列。通过将消息添加到适当的队列来控制哪个lambda处理消息。

amazon-web-services aws-lambda amazon-sqs
1个回答
0
投票

选项1:配置SQS以根据类型触发不同的Lambda函数

您不知道type,直到被lambda消耗掉为止。所以这不可能。

选项2:配置一个可以检查类型的lambda函数,然后根据其类型调用其他lambda函数

是,但是根据您的使用情况,可能会花费“更多”。当您以批处理方式使用sqs时,则必须通过进行多次检查来调用多个lambda。

选项3:为每个lambda创建单独的队列。通过将消息添加到适当的队列来控制哪个lambda处理消息。

我认为,这可能是最佳选择。您可以为每个队列配置不同的DLQ,根据您的业务规则设置不同的批处理大小,无需额外的lambda来增加“复杂性”。

© www.soinside.com 2019 - 2024. All rights reserved.