Как получить более конкретные предупреждения CloudWatch при сбое функции AWS Lambda? - PullRequest
0 голосов
/ 14 мая 2018

У меня есть множество функций, все в Node.js, в AWS Lambda. Они запускаются определенными событиями, такими как триггеры S3, методы API Gateway, а иногда просто вызываются вручную. Я создаю их, вставляя код в консоль или загружая zip-файл, который я создал локально.

В редких случаях функция не работает. Для обнаружения сбоев я настроил сигнал тревоги CloudWatch, который выглядит следующим образом:

CloudWatch alarm

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

Я учел следующее:

  1. Настройка будильника CloudWatch для каждой функции. Это наиболее очевидное решение, но оно также является самым утомительным и самым дорогим в обслуживании.
  2. Построение конвейера CI / CD для моих функций Lambda вместо ввода кода или загрузки zip-файлов в консоль. Затем я могу добавить шаг, который автоматически устанавливает оповещение CloudWatch для этой функции. Это лучше, чем первый вариант, но также имеет много инфраструктуры для настройки на потенциально простую проблему.
  3. Использование другой лямбда-функции для пользовательской обработки оповещения. Проблема в том, что, насколько я могу судить, сообщение SNS, которое публикует CloudWatch, не содержит больше данных, чем электронная почта; в сущности, это просто говорит: «Твой сигнал тревоги называется X сработал», но не почему.

Есть идеи, как этого добиться?

1 Ответ

0 голосов
/ 15 мая 2018

Мы обрабатываем это внутренне.Когда возникает проблема, Lambda пытается ее устранить и отправляет предупреждение.Метрика CloudWatch предназначена только для действительно необработанных исключений.Помните, что лямбда автоматически повторяет попытку, если в функции есть ошибка, которая может быть нежелательной в определенных ситуациях.Поэтому может быть предпочтительнее обрабатывать любые исключения, внутренние для функции Lambda.

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