当SQS队列中存在消息时,在AWS中触发Lambda函数

Tea*_*eam 6 amazon-ec2 amazon-sqs amazon-web-services aws-lambda

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

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

Ser*_*lev 16

不直接支持从SQS队列调用Lambda函数.您可以在此处查看可用触发器列表:http://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html

可能的解决方案:

  1. 用Kinesis或DynamoDB替换SQS队列.两者都可以在更新时触发Lambda函数.
  2. 在SQS之前注入SNS.SNS可以向SQS添加项目触发Lambda函数.

如果您不需要接近实时处理,这两个选项也是有效的:

  1. 创建将每N分钟(例如每分钟)触发Lambda函数的CloudWatch事件规则.
  2. ApproximateNumberOfMessagesVisible为SQS队列创建CloudWatch警报监视参数.此警报应发布到SNS主题,然后该主题将触发Lambda函数.