S3 уведомление создает несколько событий - PullRequest
1 голос
/ 26 июня 2019

Мы использовали уведомления AWS S3 для запуска лямбда-функций, когда файлы попадают на S3, и эта модель работала достаточно хорошо, пока мы не заметили, что некоторые файлы обрабатываются несколько раз, создавая дубликаты в нашем хранилище данных. Мы заметили, что это произошло примерно с 0,05% наших файлов.

Я знаю, что может защититься от этого, выполнив upsert, но нас беспокоит потенциальная стоимость запуска ненужных лямбда-функций, поскольку это влияет на наши затраты.

Я искал в Google и SO, но нашел только похожие проблемы. У нас нет проблемы тайм-аута, так как файлы были полностью обработаны. Наши файлы довольно маленькие, самый большой файл меньше 400 КБ. Мы не получаем одно и то же событие дважды, поскольку у событий разные идентификаторы запросов, даже если они выполняются в одном и том же файле.

1 Ответ

2 голосов
/ 26 июня 2019

Потратив довольно много времени на изучение документации S3, SNS и Lambda, я обнаружил заметку о специфическом для S3 уведомлении, которая гласит:

Если ваше приложение требует определенной семантики (например, убедиться, что ни одно событие не пропущено или что операции выполняются только один раз), мы рекомендуем вам учитывать пропущенные и повторяющиеся события, когда проектирование вашего приложения.

https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html

По сути, это означает, что уведомления S3 - это неправильное решение для нас, но, учитывая время исследования, которое я потратил на эту проблему, я решил поделиться этим здесь для всех, кто, возможно, пропустил страницу, указанную выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...