【问题标题】:AWS SNS create million filesAWS SNS 创建数百万个文件
【发布时间】:2021-07-11 10:44:41
【问题描述】:
我有一个事件流,每天通过 SNS 发送数百万个事件。然后通过 lambda,这些主题存储在 s3 中,但每个主题都存储在自己的文件中。这些事件的总大小并不多(小于 1 GB),但是移动/删除每个只有几个字节大小的一天文件会成为一个漫长的过程。有没有办法可以将这些 SNS 主题存储到更大的文件(甚至单个文件)中?
【问题讨论】:
标签:
amazon-web-services
amazon-s3
aws-lambda
amazon-sns
【解决方案1】:
我会让 Lambda 将事件写入 Kinesis Data Firehose,并使用它将事件批处理到某个大小阈值或时间窗口,然后让 Firehose 将这些事件传送到 S3。
这里有一些资源:
【解决方案2】:
带有 kinesis firehose 的 SNS 看起来非常适合这个用例。
最近 aws 宣布 kinesis firehouse support with SNS,在 kinesis 上你可以为 s3 添加缓冲条件。
Kinesis Data Firehose 在将传入数据传输(备份)到 Amazon S3 之前对其进行缓冲。您可以选择 1–128 MiB 的缓冲区大小和 60–900 秒的缓冲区间隔。满足的条件首先触发数据传输到 Amazon S3
如果您想转换或处理事件,您也可以使用 lambda。