Отладка ошибок выполнения AWS Lambda
24 ноября 2022 г.AWS Lambda (и бессерверные технологии в целом) упростили большинство аспектов проектирования и создания приложений. легко, за исключением отладки таких приложений, что сильно отличается от традиционных методов мониторинга. В этой статье мы поговорим о проблемах отладки и устранения неполадок функций Lambda с помощью Amazon CloudWatch.
Мы также рассмотрим альтернативный способ отладки функций AWS Lambda с помощью KloudMate за считанные минуты с помощью быстрой демонстрации.
Отладка AWS Lambda с помощью Amazon CloudWatch
Amazon CloudWatch — это центральный сервис ведения журналов и мониторинга для всех сервисов AWS, включая AWS Lambda.
Отладка AWS Lambda с использованием традиционных методов, таких как удаленная отладка или локальное моделирование среды, невозможна. Поэтому единственный способ сделать это — просмотреть журналы.
Amazon CloudWatch создает отдельную группу журналов для каждой функции Lambda. Внутри группы журналов вы найдете потоки журналов, а внутри потока журналов сотни или тысячи журналов от нескольких вызовов, и все они перемешаны. Поэтому, если вы ищете конкретный журнал неудачного вызова, есть большая вероятность, что в конечном итоге вы потратите драгоценное время на просеивание сотен или тысяч журналов в Amazon CloudWatch.
Давайте рассмотрим весь этот процесс с помощью короткой демонстрации.
Демонстрация: отладка ошибки выполнения с помощью CloudWatch
Давайте напишем пример кода Lambda, который вызывает ошибку во время выполнения, и посмотрим, как мы будем находить эту ошибку с помощью CloudWatch.
exports.handler = async (event) => {
console.log('This is a log line');
event.run();
};
Эта лямбда состоит из 2 строк кода:
- Первая строка выводит текст на стандартный вывод.
- Вторая строка выдает ошибку, поскольку объект события не имеет функции с именем run. Возникает ошибка: «event.run не является функцией».
По умолчанию такие журналы и необработанные ошибки отправляются в AWS CloudWatch. Чтобы просмотреть его в CloudWatch, вам потребуется выбрать группу журналов для этой лямбды, а затем выбрать поток журналов.
Откройте консоль CloudWatch, перейдите на страницу групп журналов и выберите функцию Lambda, которую хотите проанализировать. р>
Вы попадете на страницу потоков журналов для выбранной функции Lambda. Выберите поток для просмотра событий журнала.
Вы увидите несколько событий журнала для выбранной функции Lambda. Вы можете искать и фильтровать журналы по ключевым словам и временным меткам. Здесь вам придется просмотреть все журналы, чтобы найти ошибку.
Вы можете перейти на страницу "Статистика журналов" и выполнить запросы к журналам.
Вы также можете перейти на страницу аналитики Lambda, чтобы получить представление о производительности Lambda на основе метрик. Обратите внимание, что Lambda Insights необходимо включить в CloudWatch, включив Расширенный мониторинг
.Как видите, процесс отладки Lambda с помощью CloudWatch довольно громоздок и не интуитивно понятен. Вам придется потратить довольно много времени на поиск и просмотр нескольких страниц, чтобы определить точное исполнение, которое вас интересует.
Однако есть альтернативный способ реализовать все это за считанные минуты или даже секунды. Давайте посмотрим.
Отладка AWS Lambda с помощью KloudMate
KloudMate — это универсальная бессерверная платформа наблюдения и отладки, работающая поверх CloudWatch. Он автоматически собирает все данные и журналы, чтобы обеспечить централизованный обзор AWS Lambda и других сервисов AWS.
KloudMate можно настроить менее чем за 2 минуты и не требует изменения кода или установки агента. Он предназначен для преодоления всех ограничений AWS CloudWatch, связанных с представлением данных, обнаружением проблем и временем их решения, благодаря всеобъемлющим и интуитивно понятным представлениям панели мониторинга.
Ниже приведены некоторые функции KloudMate, помогающие отлаживать AWS Lambdas:
- Главная информационная панель KloudMate предназначена для того, чтобы вы могли видеть с высоты птичьего полета весь ваш бессерверный стек. Вы увидите недавние ошибки, наиболее часто вызывающие ошибки функции, последние сигналы тревоги и многое другое, как только откроете KloudMate.
- Вы можете просмотреть все обработанные (зарегистрированные) и необработанные ошибки & предупреждения на странице проблем KloudMate без каких-либо дальнейших действий.
- Вы можете щелкнуть любую проблему, чтобы просмотреть трассировку стека и вызовы, связанные с этой проблемой. Вы также можете просмотреть сведения о предыдущих случаях возникновения этой проблемы.
- Кроме того, если вы хотите выполнить поиск в своих журналах, это можно сделать с помощью Проводника журналов KloudMate.
- Вы можете использовать полнотекстовый поиск журналов KloudMate для поиска журналов по имени Lambda, релевантным ключевым словам, идентификатору выполнения и другим параметрам.
- Журналы можно фильтровать по функциям, типу ошибки, дате и количеству ошибок. диапазон времени
Демонстрация: отладка ошибки выполнения с помощью KloudMate
Давайте воспользуемся тем же образцом кода Lambda, что и в демонстрации CloudWatch.
exports.handler = async (event) => {
console.log('This is a log line');
event.run();
};
Эта Lambda должна выдавать ошибку «event.run не является функцией».
Теперь, как только вы откроете KloudMate, вы увидите функцию Lambda, которая выдает ошибку, указанную в разделе Основные ошибочные функции, прямо на главной панели. Ошибка также будет указана в разделе Последние проблемы на самой главной панели управления.
Это автоматическое обнаружение ошибок и централизованный доступ к ошибкам сэкономят вам часы ручного копания в журналах, чтобы найти ошибку.
Вы можете щелкнуть ошибку на главной панели или открыть страницу «Проблемы». Эта ошибка будет указана в списке Все нерешенные проблемы, как показано ниже.
Он также будет отображать общее количество случаев и уровень серьезности.
:::информация Примечание. KloudMate по умолчанию предоставляет уведомления о фатальных ошибках. Вы также можете настроить полностью настраиваемые сигналы тревоги в соответствии с вашими потребностями.
:::
Если вы нажмете на проблему, показанную на снимке экрана выше, вы сможете просмотреть дополнительные сведения об ошибке.
Вы можете нажать кнопку Просмотреть вызов, чтобы просмотреть последний вызов проблемы.
Вы можете перейти в раздел Lambda, чтобы просмотреть все последние вызовы для этой конкретной Lambda. Вы также можете просмотреть набор агрегированных метрик для этой лямбда-функции, представленный в графическом представлении.
А если вы ищете вызовы всех ваших лямбда-выражений, вы можете перейти на страницу журналов в KloudMate.
Заключительные примечания
KloudMate – это специально созданная платформа, помогающая разработчикам централизованно отслеживать все свои функции Lambda, а не копаться вручную в горах файлов журналов в Amazon CloudWatch. Доказано, что использование KloudMate снижает количество ошибок и ошибок. время обнаружения проблем до 80%. Если вы зашли в тупик, пытаясь отладить AWS Lambda с помощью Amazon CloudWatch, вы можете проверить KloudMate.
Большое спасибо Винаю Гаддаму за предоставленный код Lambda и демонстрации отладки.
Больше подобных статей вы также можете найти на странице https://blog.kloudmate.com/.
Оригинал