отправлять уведомление об ошибке, когда функция AWS Lambda обнаруживает ошибку

У меня есть функция AWS Lambda, запускающая какой-то процесс в моей инфраструктуре. Лямбда запускается каждые 8 ​​часов с использованием правила CloudWatch. Я пытаюсь отправить уведомление, если в процессе Lambda произойдет какая-либо ошибка. Я пытался использовать SES, но эта услуга недоступна в этом регионе.

Я хотел бы знать любые предложения по этой проблеме:

Как настроить уведомления при возникновении ошибки в моих лямбда-функциях?

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




Ответы (1)


Некоторые предложения:

Очереди недоставленных писем:

Если ваша ошибка вызывает неудачные вызовы, вы можете использовать очередь недоставленных сообщений Lambda, чтобы отправить событие в тему SNS или очередь SQS. Если вы отправляете его в тему SNS, вы можете напрямую подписаться на тему через социальные сети или электронную почту, чтобы получать уведомления каждый раз, когда в этой теме публикуется сообщение.

Многорегиональная SES:

Если вы действительно настроены на использование SES напрямую, клиенты SES могут быть созданы с явным указанием региона - пока ваша роль выполнения лямбда имеет соответствующие разрешения, вы можете отправлять электронную почту на SES из другого региона. Вот документация по созданию экземпляра клиента JS SES.

Журналы CloudWatch:

Если ваша ошибка не приводит к сбою вызова, другой вариант - использовать CloudWatch Logs фильтр показателей для агрегирования сбоев и потенциального оповещения о них. Если вы используете NodeJS, вы можете просто выйти из системы через console.log(), console.error() и т. Д., И это будет записано в CWLogs. Подробнее см. здесь.

Вы можете подписаться на тему SNS на CloudWatch Alarms и уведомлять себя так же, как и DLQ.


По мере того, как вы приобретете опыт работы с ошибкой и узнаете, как обрабатывать распространенные ошибки, вы также можете подписать еще одну лямбду на тему SNS из примера DLQ / CWLogs, чтобы обрабатывать ее по мере возникновения.

person Anthony Neace    schedule 06.03.2017
comment
Спасибо за ваш ответ. Я прочитал ваш ответ, выполнил поиск по фильтру метрик и создал фильтр метрик, но он вызывает уведомление только один раз. Я использовал свой адрес электронной почты, и он отправляет уведомление об ошибке по электронной почте только в первый раз, когда возникают ошибки. Я хотел бы знать, почему я не поднимаю по электронной почте больше одного. Если у вас есть какие-нибудь подсказки? - person Robert; 06.03.2017
comment
Да; для сигнала тревоги CloudWatch, если ваш показатель превышает пороговое значение сигнала тревоги в заданный период сигнала тревоги, вы получите одно электронное письмо с уведомлением о срабатывании сигнала тревоги. Таким образом, если вы написали метрику 10 раз за один период и сработает аварийный сигнал для значения = 1, вы получите одно аварийное уведомление. Если вы установите для периода будильника что-то достаточно низкое (для вашего случая использования, когда запускается только один раз каждые 8 ​​часов, нет никакого вреда в установке очень низкого порогового значения, например, значение метрики ›1 на 1 период в 5 минут), вы Будут отображаться сигналы тревоги за несколько периодов. - person Anthony Neace; 06.03.2017
comment
Ну вот и подошло время и пороги. Через несколько минут будильник вернется в предыдущее состояние, если все в порядке. Спасибо - person Robert; 06.03.2017
comment
По сравнению с параметром CloudWatch Logs существует ErrorProcessor пример из AWS, который может вам показаться актуальным - person r.pedrosa; 23.10.2019