У меня есть корзина S3, которая отправляет события в SNS при событиях PUT. У меня есть несколько лямбда-функций, подписывающихся на SNS, поэтому, когда на S3 происходит событие PUT, все лямбда-функции запускаются.
Проблема в том, что мне нужно обработать только некоторые файлы, которые PUT на S3. В настоящее время у меня есть логика фильтрации c, но она существует в лямбда-функции. Так что, хотя я не обрабатываю эти файлы (я возвращаюсь рано), он все равно запускает лямбда-функцию. Это начинает стоить много $$, потому что я вызываю функцию намного больше, чем необходимо.
Как я могу отфильтровать, какие события попадают в функции Lambda? Я хотел бы отфильтровать объекты S3 одним из 3 способов:
1) Путем частичного совпадения строк в ключе объекта. (Сопоставление префиксов и суффиксов в S3 мне не помогает ... частичная строка находится в середине ключа объекта.)
2) По тегу я применяю к определенным объектам при загрузке.
3) По мета-полю я могу применить к объектам при загрузке.
Возможна ли какая-либо из этих стратегий? Я не могу найти документацию, которая предлагает это. Если нет, как я могу добиться фильтрации?