У меня есть поток событий, который ежедневно отправляет миллионы событий через SNS. Через лямбду эти топики затем сохраняются в s3, но каждый в своем файле. Общий размер этих событий невелик (менее 1 ГБ), но перемещение/удаление однодневных файлов размером в несколько байт каждый становится длительным процессом. Есть ли способ сохранить эти темы SNS в больших файлах (или даже в одном файле)?
AWS SNS создает миллионы файлов
Ответы (2)
Я бы попросил Lambda записать события в Kinesis Data Firehose и использовать его для пакетной обработки событий до определенного порога размера или временного окна, а затем заставить Firehose доставить их в S3.
Вот несколько ресурсов для этого:
SNS с kinesis firehose идеально подходит для этого варианта использования.
Недавно aws анонсировала поддержку kinesis firehouse с SNS, на kinesis вы можете добавить условия буферизации в s3.
Kinesis Data Firehose буферизует входящие данные перед их доставкой (резервным копированием) в Amazon S3. Вы можете выбрать размер буфера от 1 до 128 МБ и интервал буфера от 60 до 900 секунд. Условие, которое выполняется первым, инициирует доставку данных в Amazon S3.
Если вы хотите преобразовать свои события или обработать их, вы также можете использовать лямбда.