#amazon-web-services #amazon-s3 #aws-lambda
#amazon-web-services #amazon-s3 #aws-lambda
Вопрос:
У меня есть большой сегмент S3 (> 3 ТБ), содержащий только десятки тысяч небольших data.txt
файлов с хэшированным префиксом, например:
uuid1/data.txt
uuid2/data.txt
uuid3/data.txt
...
где uuid — это, например, некоторый уникальный идентификатор uuid1=hd73nv93ha7d
.
У меня также есть функция Lambda, которая обрабатывает эти data.txt
файлы и сохраняет результат в другом сегменте s3. Единственным входным аргументом лямбда-функции является ключ data.txt
, например Key=uuid123/data.txt
.
Какой наилучший способ или сервис, который выполняет цикл по сегменту и запускает лямбда-выражение (одновременно) ровно один раз для каждого data.txt
файла?
Комментарии:
1. Является ли «ровно один раз» жестким требованием? Недостаточно ли «хотя бы один раз»?
2. Вам нужно
ls
использовать все объекты в сегменте, а затем либо напрямую вызвать лямбда-выражение, либо поместить сообщение в очередь sqs, которая затем запускает лямбда-выражение.
Ответ №1:
Используйте инвентаризацию S3, чтобы преобразовать список файлов в корзине S3 в файл. Выполните итерацию по списку и вызовите лямбда-выражение, используя соответствующий SDK API. Вот функция JS для вызова лямбда-выражения.