使用AWS lambda函数

时间:2018-02-23 18:23:14

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

我有2个FIFO SQS队列,它接收要索引到elasticsearch的JSON消息。一个队列不断向数据库添加增量更改并将其添加到队列中。第二个队列用于数据库重新索引,即整个50Tb,如果数据要每隔几个月编入索引(其中所有内容都被添加到队列中)。我有一个lambda函数,它使用来自队列的消息并将它们放入适当的队列(活动索引或正在重建的索引)。

我应该如何触发lambda函数以最好地处理SQS中的积压消息,以便尽快处理这两个队列?

我的约束是需要按顺序处理队列项。如果lambda函数可以在没有5分钟限制的情况下无限期运行,我可以继续运行一个不断处理消息的函数。

2 个答案:

答案 0 :(得分:1)

执行此操作的标准方法是使用运行Cloudwatch Eventsperiodically。这使您可以定期从队列中提取数据。

因为您必须轮询SQS,这可能不会导致最快的消息处理。另外,如果你经常要处理消息,要小心 - Lambda最终会比处理消息的小EC2实例贵得多。

答案 1 :(得分:0)

您可以将邮件直接发送到SQS,而不是将邮件发布到SNS主题,并注册了2个订阅者。

  1. 订阅者:SQS
  2. 订阅者:Lambda函数
  3. 在将消息存储在SQS中的同时调用Lambda的好处。