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