AWS -a Configure Trigger для обнаружения только создания каталогов, а не создания файлов - PullRequest
0 голосов
/ 18 апреля 2019

Я настраиваю лямбда-функцию для запуска только в том случае, если в s3 создается каталог, а не файл

Пример: {имя_контейнера} / a / b / c / d /

a, b, c, d - это каталоги внутри корзины.

Я хочу, чтобы лямбда-функция запускалась при создании ключа "d" (d не файл, это каталог).

На основании моих исследований

  1. Вместо упоминания {bucket-name} / * /

  2. * могут быть указаны только определенные префиксы1016 * В триггерах нет специального фильтра для проверки создания каталога.Создание файлов и каталогов считается так же, как операция над объектом.Я хочу запускать только во время создания каталога на определенной глубине, здесь в этом примере - я не хочу запускать во время создания ключа каталога / s3 a, b или c.Мне нужно запускать только во время создания каталога d (на более глубоком уровне).Можно ли это сделать каким-либо образом при настройке лямбда-триггера?

1 Ответ

1 голос
/ 18 апреля 2019

S3 не файловая система - это хранилище объектов.Однако ключи, оканчивающиеся на завершающий «/», обычно обрабатываются как папки, так что, возможно, это способ проверки.

Так что я бы сделал свою лямбда-проверку, чтобы увидеть, есть ли у ключа объекта завершающий «/»", и рассматривайте это как создание папки.

Обратите внимание, что вы можете создавать файловые объекты с завершающим символом" / ", вы просто не можете сделать это через консоль, но если у вас есть контроль над созданием ключа, выдолжно быть в состоянии избежать этого.

Редактировать: чтобы обратиться к комментарию, который вы хотите, чтобы лямбда запускалась только при создании «папки», а не для каждого добавленного файла, это в настоящее время не поддерживается.Если вы не имеете дело с миллиардами файлов, я бы не стал слишком беспокоиться о стоимости лямбды.Функция, которая требует 250 мс для работы с 256 МБ ОЗУ, обойдется вам менее чем в 5 долларов за миллион объектов.

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