我将文件从源文件传输到S3存储桶。文本文件的大小范围为1-100 MB。我需要从文件中提取一些东西并将它们写入dynamoDB。到目前为止,实现是这样的,进入S3存储桶的传入文件会触发一个lambda,它处理文件并将它们写入dynamoDB。到目前为止一直很好,但是有一个问题。
问题是,我无法控制进入S3的文件的速率。在某些情况下,它的范围从几秒到几百秒不等。有两个问题:1)触发了大量的lambda。我想将它限制为N lambdas,其中N对应于dynamoDB允许的最大活动连接。
在这种情况下,我可以在S3和dynamoDB之间以某种方式使用Kinesis吗?或者,什么是一个好的解决方案?
答案 0 :(得分:0)
我发现kinesis可能不合适,因为你无法真正控制物品的处理速度。另一种选择是,您可以更精确地控制处理速度,这可能是SQS。只需将每个事件放入队列中,并且每隔几分钟触发一次从队列中读取的lambda。但请记住,当队列中没有事件因此浪费资源时,您也可能触发lambda。