我不确定是否正确理解AWS Lambda - SQS触发器。我可以将其配置为这样一种方式:一个SQS队列可以根据消息体或消息属性触发不同的lambda函数吗?
My用例:我有三个不同的lambda函数(processCricket、processFootball、processTennis),每个函数都执行一个唯一的函数。我只有一个队列(processGame)来接收消息。队列中的每条消息都有一个属性"type“,即"Cricket”、“足球”或“网球”。我可以根据消息上的“类型”调用不同的lambda函数吗?
选项1:配置SQS以根据类型触发不同的lambda函数(不确定是否可以这样做)
选项2:配置一个lambda函数,它可以检查类型,然后根据其类型调用其他lambda函数。
选项3:为每个lambda创建单独的队列。通过将消息添加到适当的队列来控制哪个lambda处理消息。
发布于 2020-06-12 17:19:09
您应该而不是将多个Lambda函数配置为单个SQS队列的触发器。这是因为SQS中的消息将传递给任何一个使用者,当该消息由该使用者处理时,它将不会对其他人可见。因此,您将无法决定哪种“类型”的消息属于哪个函数,因此选项1是无效的。
备选案文2和3都应正常工作。如果您不期望将许多消息传递到您的队列中,因此不必担心Lambda标度,我将选择选项2。还要注意,可以在一个批处理中将多条消息传递给Lambda触发器,因此您必须相应地实现您的逻辑。
如果您期望收到大量的消息,那么选项3将更适合。
https://stackoverflow.com/questions/62349013
复制相似问题