Пусть ресурс вызывает лямбду только один раз - PullRequest
0 голосов
/ 11 июля 2019

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

Вниз по течению от моего конвейера у меня есть лямбда, которая создает базу данных и таблицу Athena. Эта лямбда срабатывает, как только объект сбрасывается под соответствующим ключом моего ведра s3. Достаточно назвать эту лямбду, которая создает мою базу данных и таблицу Athena только один раз.

как мне избежать, чтобы моя лабда запускалась несколько раз?

1 Ответ

1 голос
/ 11 июля 2019

Это ваш существующий поток:

  1. S3 запускает лямбду, как только приходит новый файл (управляемый событиями)
  2. «Лямбда для обработки файла» и затем доставляет другому S3
  3. Другой S3 также запускает другую лямбду

Ваш шаг 3 даже не управляется, вы принудительно запускаете событие.

Я предлагаю вам следующий поток:

  1. S3 запускает лямбду, когда приходит новый файл (управляемый событиями)
  2. «Лямбда для обработки файла», а затем доставляет другому S3

Всего два шага,Лямбда, которая обрабатывает файл, должна использовать Athena SDK и проверить, существует ли требуемая таблица, и только если нет, тогда вы вызываете Lambda, которая создает таблицу Athena.Доставка S3 не должна вызывать лямбду для Афины.

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