2016-12-14 145 views
4

我正在使用AWS Lambda函数处理队列中的消息,它工作正常。但是当消息可用或在SQS队列中添加时,我需要执行此Lambda函数。在SQS队列中存在消息时触发AWS中的Lambda函数

是否可以基于SQS队列触发Lambda函数。请提出一种方法来实现此目标。

回答

13

不直接支持从SQS队列中调用Lambda函数。你可以在这里看到可用的触发列表:http://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html

可能的解决方案:

  1. 更换SQS队列室壁运动或DynamoDB。两者都可以在更新时触发Lambda函数。
  2. 在SQS之前注入SNS。 SNS可以添加项目到SQS 触发Lambda函数。

如果你并不需要近实时处理,这两个选项也有效:

  1. 创建CloudWatch的事件规则将触发每N分钟(如每分钟)的lambda函数。
  2. 为您的SQS队列创建CloudWatch警报,查看ApproximateNumberOfMessagesVisible参数。此警报应该发布到SNS主题,这反过来会触发Lambda功能。
+0

请您详细解释一下这个方法:“在SQS之前注入SNS,SNS可以添加项目到SQS并触发Lambda函数” – Team

+1

您可以发布到SNS主题思想SNS API。 SNS会将消息扇出到多个端点。 –

+0

我在这个AWS中做得不好,因为我只是在这里开始工作。你能帮我详细解释 – Team