我在循环中多次从EC2实例触发AWS lambda,并将350MB数据集的子集传递给Lambda,后者处理传递给它的每个数据集。 Lambda将输出写入Kinesis Firehouse流,然后将其写入S3 Bucket。 缓冲区大小为50MB,而Kinesis Firehouse流的S3缓冲区间隔为350秒。所以我在6-7分钟后得到大约7个50 MB的文件。
我想触发一个Lambda,它结合了S3中包含JSON数据的所有文件,并在完成Kinesis Firehouse流将所有文件写入S3后创建了一个CSV文件。
挑战是如何知道所有Lambda都已完成其操作并且Kinesis Firehouse缓冲区为空,因为它已将所有文件写入S3,因此我可以触发此Lambda创建CSV文件来自S3中的所有JSON文件。
一个选项是我在循环之后等待350秒,然后在调用最后一个lambda之后触发CSV创建lambda。
有没有办法在写完所有Kinesis Firehouse流数据后触发lambda而不是使用计时器。