AWS SNS 创建百万个文件

AWS SNS create million files

我有一个事件流,每天通过 SNS 发送数百万个事件。通过 lambda,这些主题随后存储在 s3 中,但每个主题都在自己的文件中。这些事件的总大小并不多(小于 1 GB),但是 moving/deleting 有一天每个几个字节大小的文件都会成为一个漫长的过程。有什么方法可以将这些 SNS 主题存储到更大的文件(甚至单个文件)中?

我会让 Lambda 将事件写入 Kinesis Data Firehose,并使用它将事件分批处理到特定大小阈值或时间 -window,然后让 Firehose 将这些事件传送到 S3。

这里有一些资源:

带有 kinesis firehose 的 SNS 看起来非常适合这个用例。

最近 aws 宣布 kinesis firehouse support with SNS,您可以在 kinesis 上为 s3 添加缓冲条件。

Kinesis Data Firehose buffers incoming data before delivering it (backing it up) to Amazon S3. You can choose a buffer size of 1–128 MiBs and a buffer interval of 60–900 seconds. The condition that is satisfied first triggers data delivery to Amazon S3

如果您想转换或处理您的事件,您也可以使用 lambda。