如何使用AWS SQS作为事件源以及如何基于事件属性调用不同的Lamda函数

时间:2019-10-05 10:17:51

标签: amazon-web-services aws-lambda amazon-sqs

伙计们需要一点帮助,我有一个用例,我想在其中建立通信服务。 使用SQS,SQ将接收到不同类型的事件进行通信。现在,我们有一个lambda函数,它可以进行一次通信。假设一封电子邮件是Lambda,Slack lambda等。

如何根据队列属性调用不同的lambda。我打算将SQS用作事件源以及这种架构link to sample architeture

在上面,我们可以在lambda服务级别上处理速率限制和并发 如果事件类型为A则调用Lambda A进行简化的工作如果事件类型为B则调用lambda B进行简化 并且两个事件都在同一个SQS中

欢迎所有建议

1 个答案:

答案 0 :(得分:2)

您的问题是SQS消息一次只能由一个服务读取。读取时,其他任何人都看不到它。您只能有一个Lambda使用者,并且除了设置另一个SQS主题之外,SQS中没有任何分区或路由。已实现多个使用者Kensis或AWS MSK(Kafka)

您要完成的工作称为“扇出”。这是一种常见的云架构。您可能想要做的是最初发布到SNS。然后,使用SNS,您可以针对每种消息类型过滤并路由到多个SQS主题,然后每个SQS主题都将由其自己的Lambda消耗。

在此处查看教程: https://docs.aws.amazon.com/sns/latest/dg/sns-common-scenarios.html