Amazon web services 仅在收集了固定数量的数据后执行AWS Lambda(具有多个数据)
我希望仅在收集了固定数量的数据之后,才使用多个数据执行lambda函数。固定量将是,例如,只考虑特定数量的消息,或者在特定的时间范围内发送的消息。 我想用SQS来解决这个问题,我在SQS上写消息,并用轮询来检查SQS状态。但是我不喜欢这个解决方案,因为我希望在匹配条件时立即触发lambda(例如:从发送第一条消息开始经过的时间,或者固定数量的消息) 理想情况是发送收集的所有消息,例如,在第一条消息到达后1分钟 要明确的是:Amazon web services 仅在收集了固定数量的数据后执行AWS Lambda(具有多个数据),amazon-web-services,aws-lambda,amazon-sqs,aws-step-functions,Amazon Web Services,Aws Lambda,Amazon Sqs,Aws Step Functions,我希望仅在收集了固定数量的数据之后,才使用多个数据执行lambda函数。固定量将是,例如,只考虑特定数量的消息,或者在特定的时间范围内发送的消息。 我想用SQS来解决这个问题,我在SQS上写消息,并用轮询来检查SQS状态。但是我不喜欢这个解决方案,因为我希望在匹配条件时立即触发lambda(例如:从发送第一条消息开始经过的时间,或者固定数量的消息) 理想情况是发送收集的所有消息,例如,在第一条消息到达后1分钟 要明确的是: 第一条消息到达队列 从现在开始启动计时器(例如1分钟) 计时器结束,它将
我已经有了一个与顺序lambda一起工作的系统,它可以处理每一条消息的所有过程您可以通过几种方式来实现这一点。我会这样做:
不幸的是,在AWS Lambda上执行这项任务并不容易(我们有一个类似的用例) SQS或Kinesis数据流作为触发器可能会有所帮助,但有几个限制:
- AWS Lambda将以非常高的频率拉动SQS。您必须向lambda添加一个并发限制,以使其由多个项目触发。最大批量只有10个
- 每个碎片的速度为每秒一次,无法更改
确保如果您使用Kinesis数据流作为Kinesis消防软管的源,则来自数据流每个碎片的数据将在消防软管中单独成批处理(AWS中未记录此情况)。使用状态机不会有任何帮助,因为他要求聚合这段时间内收到的更多记录。正如我在回答中提到的,使用SQS存在一些问题。