Увеличение числа попыток в AWS Lambda - PullRequest
0 голосов
/ 08 марта 2019


У меня было несколько вопросов о лямбдах AWS, и я не смог найти подробностей в документации
Как увеличить количество повторных попыток в лямбде AWS?
В случае максимального количества попытокпроизошло, и вся лямбда не сработала, как я могу получить какое-то уведомление?

1 Ответ

0 голосов
/ 08 марта 2019

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

  1. Потоковые синхронные источники событий могут повторяться или не повторяться.Это зависит от службы .
  2. Асинхронные источники событий будут повторяться до трех раз.Если все сообщения терпят неудачу, вы можете настроить DLQ для приема сообщений с ошибками
  3. (источники событий на основе потоков и на основе опросов) (например, Kinesis или Dynamo) будут повторять попытки до тех пор, пока не будет настроено сохранение данных.Будьте осторожны, потому что, если одно сообщение терпит неудачу и само сообщение является ядовитым, оно будет повторять попытки до истечения срока его действия, и новые сообщения не будут обрабатываться
  4. (не на основе потока && на основе опросаИсточники событий) (SQS) будут отбрасывать сообщения в случае сбоя (если это не был сбой вызова или тайм-аут).В случае отклонения они будут отправлены в DLQ, если вы предварительно настроили один из них.

Итак, основываясь на приведенной выше информации, мы можем затем ответить на ваш вопрос с помощью уведомлений: вы можете иметь другую Lambda, подписанную на вашDLQ для получения сообщения и уведомления, как вы хотите.Либо отправив электронное письмо от самой функции, либо отправив его в SNS (возможно, чтобы отправить электронное письмо напрямую или сделать с ним что угодно).

Для количества повторных попыток это не настраивается дляуже встроенные значения.Самое большее, что вы можете сделать - это синхронно вызвать функцию Lambda из вашего кода и, в случае исключения, повторить ее по своему желанию (экспоненциальный откат, если необходимо, также необходимо будет кодировать вручную)

...