Файлы процесса помещаются в корзину s3 в лямбда-AWS в том порядке, в котором они были помещены

Мой текущий рабочий процесс выглядит следующим образом:

Пользователь помещает файл в s3 bucket -> s3 bucket запускает событие в lambda -> lambda обрабатывает файл в s3 bucket. Это также вызывает другие лямбды.

Я хочу разобраться со сценарием, когда несколько пользователей будут сбрасывать файлы в корзину s3 одновременно. Я хочу обработать файлы так, чтобы файл, помещенный первым, обрабатывался первым. Чтобы справиться с этим, я хочу, чтобы лямбда обрабатывал каждый файл за 15 минут (например).

Итак, я хочу использовать SQS для постановки в очередь событий отбрасывания входного файла. S3 может вызвать событие для SQS. Событие cloudwatch может запускать лямбду через каждые 15 минут, и лямбда может опрашивать очередь SQS на предмет первого события удаления файла s3 и обрабатывать ее.

Проблема с SQS заключается в том, что стандартные очереди SQS не соответствуют порядку, а очереди FIFO SQS несовместимы с S3 (см. Ошибка при настройке уведомлений из корзины S3 в очередь FIFO SQS из-за необходимого суффикса ".fifo").

Какой подход я должен использовать для решения этой проблемы?

Спасибо,

Swagatika

1 ответ

Amazon S3 может вызвать функцию AWS Lambda, которая затем помещает информацию о файле в очередь FIFO Amazon SQS.

Существует новая возможность, где SQS может запускать лямбда, но вам придется поэкспериментировать, чтобы увидеть, как / работает ли это с очередями FIFO. Если это работает хорошо, это может исключить "15 минут".

Другие вопросы по тегам