我不确定我是否理解 AWS Lambda - SQS 正确触发。我是否可以将它配置为一个 SQS 队列可以根据消息正文或消息属性触发不同的 lambda 函数?
我的用例:我有三个不同的 lambda 函数(processCricket、processFootball、processTennis),每个函数执行一个独特的功能。我有一个接收消息的队列(processGame)。队列中的每条消息都有一个属性“type”,它可以是“Cricket”、“Football”或“Tennis”。我可以根据消息上的“类型”调用不同的 lambda 函数吗?
选项 1:根据类型配置 SQS 以触发不同的 lambda 函数(不确定我是否可以这样做)
选项 2:配置一个可以检查类型的 lambda 函数,然后根据其类型调用其他 lambda 函数
选项 3:为每个 lambda 创建单独的队列。通过将消息添加到适当的队列来控制哪个 lambda 处理消息。
最佳答案
Option 1: Configure SQS to trigger a different lambda function depending on the type
你不可能知道
type
直到它被 lambda 消耗掉。所以这个是不可能的。Option 2: Configure one lambda function which can check type and then call the other lambda functions depending on its type
是的,这是第一选择的“可能”方式。但根据您的使用情况,它可能会花费“更多”。当您以批处理模式使用 sqs 时,您必须通过多次检查来调用多个 lambda。
Option 3: Create separate queues for each lambda. Control which lambda processes the message by adding the message to the appropriate queue.
在我看来,这可能是最好的选择。您可以为每个队列配置不同的 DLQ,根据您的业务规则设置不同的批次大小,不需要额外的 lambda 来增加“复杂性”。
关于amazon-web-services - 从一个 SQS 触发器触发多个 lambda 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62349013/