Учебники

Мониторинг и устранение неисправностей с помощью Cloudwatch

Функции, созданные в AWS Lambda, отслеживаются Amazon CloudWatch. Это помогает регистрировать все запросы к функции Lambda, когда она запускается.

Учтите, что следующий код загружен в AWS Lambda с именем функции lambda и cloudwatch .

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Lambda monitoring using amazon cloudwatch");    
   callback(null, 'Hello from Lambda');
};

Когда функция будет протестирована или запущена, вы должны увидеть запись в Cloudwatch. Для этого перейдите в сервисы AWS и нажмите CloudWatch.

Нажмите Cloudwatch

Выберите журналы с левой стороны.

Выберите левую сторону

Когда вы нажимаете « Журналы» , в вашей учетной записи создается функция « Группы журналов» AWS Lambda. Выберите любую функцию AWS Lambda и проверьте детали. Здесь мы ссылаемся на лямбда-функцию с именем: lambdaandcloudwatch . Журналы, добавленные в функцию Lambda, отображаются здесь, как показано ниже —

Группы журналов

Теперь давайте добавим триггер S3 к функции Lambda и посмотрим подробности журналов в CloudWatch, как показано ниже:

S3 Trigger

Давайте обновим лямбда-код AWS для отображения загруженного файла и имени сегмента, как показано в приведенном ниже коде —

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Lambda monitoring using amazon cloudwatch");
   const bucket = event.Records[0].s3.bucket.name;
   const filename = event.Records[0].s3.object.key;
   const message = `File is uploaded in - ${bucket} -> ${filename}`;
   console.log(message);
   callback(null, 'Hello from Lambda');
};

Теперь добавьте файл в s3storetestlambdaEventbucket, как показано на рисунке —

S3 Store Test

Когда файл загружен, запускаются функции AWS Lambda, и сообщения консольного журнала из лямбда-кода отображаются в CloudWatch, как показано ниже —

Cloudwatch Display

Если есть какая-либо ошибка, CloudWatch выдает подробности ошибки, как показано ниже —

Детали Cloudwatch

Обратите внимание, что мы неправильно указали имя сегмента в лямбда-коде AWS, как показано ниже.

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Lambda monitoring using amazon cloudwatch");
   const bucket = event.Records[0].bucket.name;
   const filename = event.Records[0].s3.object.key;
   const message = `File is uploaded in - ${bucket} -> ${filename}`;
   console.log(message);
   callback(null, 'Hello from Lambda');
};

Ссылка на имя корзины из события неверна. Таким образом, мы должны увидеть ошибку, отображаемую в CloudWatch, как показано ниже —

Отображается ошибка

CloudWatch Metrics

Подробности выполнения лямбда-функции можно увидеть в метриках. Нажмите Метрики, отображаемые в левой части.

Показанные метрики

Все метрики

Детали графика для лямбда-функции lambdaandcloudwatch приведены ниже:

Графические метрики

Детали графикаГраф Детали Лямбда

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