Как настроить лямбда-функцию для совместной работы с двумя триггерами

0

Вопрос

Мне нужно, чтобы одна лямбда начиналась только тогда, когда какой-то файл был загружен на два разных префикса S3.

Пример:

У меня есть файл A и файл B, и у меня есть два разных префикса для каждого файла.

Мне нужно выполнить некоторые агрегации с файлами A и B.

Для этого я буду использовать Лямбду, которая поместит сообщение в SNS, когда эти файлы будут загружены.

Я хотел бы настроить эту лямбду для запуска, когда эта лямбда получит это уведомление о двух событиях.

Таким образом, моя лямбда-функция может начаться только тогда, когда эти два файла будут доступны на S3 для обработки.

Как лучше всего настроить эти триггеры для совместной работы?

1

Лучший ответ

1

TLDR; Вместо того, чтобы вызывать уведомления о "создании файла" вручную в "публикации лямбда", уведомления о событиях S3 автоматически вызывают вашу "обработку лямбда" при создании целевого файла. Лямбда - код выполняется до завершения, когда существуют оба файла.

документы: Amazon S3 может отправлять событие в лямбда-функцию при создании или удалении объекта.

(1) Создайте уведомления о событиях S3: Добавьте два уведомления о событиях в корзину. Один вызывает обрабатывающую лямбду, когда FileA создается на S3. Другой вызывает его, когда FileB создается. Вы можете установить фильтры, чтобы ваш lambda получал уведомления только об определенных действиях S3 и шаблонах файлов.

(2) Обрабатывающий лямбда-код проверяет, существует ли другой файл. Событие S3, переданное лямбде, содержит информацию о событии запуска (например ObjectCreated) и объект (например, имя ключа, версия, корзина и т. Д.) Используйте пакет SDK AWS, Чтобы проверить, существует ли другой файл в S3.

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

50% времени, в течение которого лямбда-код обработки завершится раньше (поскольку существует только 1 файл). В других случаях лямбда будет проходить весь путь до процедуры склеивания.

(Примечание: это будет работать только в том случае, если вы можете получить одно имя файла из другого, что неясно из ОП или комментариев.)

2021-11-22 14:54:37

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................