我正在使用AWS lambda函数来处理队列中的消息正常工作。但是我需要在消息可用时执行此lambda功能或在SQS队列中添加。
是否可以基于SQS队列触发Lambda功能。请建议一种实现此目标的方法。
不直接支持从SQS队列中调用lambda函数。您可以在此处查看可用触发器的列表:http://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html
可能的解决方案:
- 用运动员或DynamoDB替换SQS队列。两者都可以在更新上触发lambda功能。
- 在SQS之前注入SNS。SNS可以将项目添加到SQS 和触发lambda函数。
如果您不需要接近实时处理,这两个选项也有效:
- 创建CloudWatch事件规则,该规则将每n分钟触发lambda功能(例如每分钟)。
- 创建CloudWatch警报观看SQS队列的
ApproximateNumberOfMessagesVisible
参数。此警报应发布到SNS主题,该主题又将触发lambda函数。
lambda现在支持SQS作为本机事件源
https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html