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

У меня есть одна лямбда, она выполняется по триггеру s3 put item.

Теперь в s3 запускаются лямбда любых загруженных объектов. Допустим, кто-то загрузил 5 файлов в s3, поэтому каждый раз он будет выполнять лямбду для 5 файлов ...

Есть ли способ, которым лямбда может запускаться только один раз для всех этих 5 файлов ...

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

Любая помощь будет очень полезна для меня

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

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

Соответствующей может быть поток данных Kinesis / SQS.Если пакетирование важно для вас, Kinesis, вероятно, будет лучше.

Запросы могут быть отправлены лямбда-сигналом, запущенным S3, как вы описали, но он только отправит запрос в очередь, и тогда другая лямбда будетобработайте это.Более простым способом будет отправить запрос в том же коде, который помещает объект в S3 (если это возможно).

Таким образом, вы можете получить статистику о том, сколько запросов было отправлено, обработано, ожидает и т. Д.

0 голосов
/ 11 апреля 2019

Если у вас настроено уведомление корзины для создания объекта (s3:ObjectCreated), и если вы не указали фильтр или фильтр, удовлетворяющий загруженным объектам, ваша лямбда будет запускаться каждый раз для каждого загруженного объекта.

Чтобы увидеть количество вызовов, вы можете посмотреть метрику Invocations для вашей лямбда-функции в метриках Cloudwatch

enter image description here

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