Monitoramento e solução de problemas usando Cloudwatch
As funções criadas no AWS Lambda são monitoradas pelo Amazon CloudWatch. Ajuda a registrar todas as solicitações feitas à função Lambda quando ela é disparada.
Considere que o código a seguir é carregado no AWS Lambda com o nome da função como lambda and cloudwatch.
exports.handler = (event, context, callback) => {
// TODO implement
console.log("Lambda monitoring using amazon cloudwatch");
callback(null, 'Hello from Lambda');
};
Quando a função é testada ou acionada, você deve ver uma entrada no Cloudwatch. Para isso, acesse os serviços da AWS e clique em CloudWatch.
Selecione os registros do lado esquerdo.
Quando você clica Logs, tem o Log Groupsda função AWS Lambda criada em sua conta. Selecione qualquer função do AWS Lambda e verifique os detalhes. Aqui, estamos nos referindo à função Lambda com nome:lambdaandcloudwatch. Os logs adicionados à função Lambda são exibidos aqui conforme mostrado abaixo -
Agora, vamos adicionar o gatilho S3 à função Lambda e ver os detalhes dos logs no CloudWatch conforme mostrado abaixo -
Vamos atualizar o código do AWS Lambda para exibir o arquivo carregado e o nome do intervalo, conforme mostrado no código fornecido abaixo -
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');
};
Agora, adicione o arquivo em s3storetestlambdaEventbucket como mostrado -
Quando o arquivo é carregado, as funções do AWS Lambda serão acionadas e as mensagens de log do console do código do Lambda serão exibidas no CloudWatch conforme mostrado abaixo -
Se houver algum erro, o CloudWatch fornece os detalhes do erro conforme mostrado abaixo -
Observe que nos referimos ao nome do intervalo incorretamente no código AWS Lambda, conforme mostrado -
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');
};
A referência do nome do intervalo do evento está errada. Assim, devemos ver um erro exibido no CloudWatch conforme mostrado abaixo -
CloudWatch Metrics
Os detalhes da execução da função Lambda podem ser vistos nas métricas. CliqueMetrics exibido no lado esquerdo.
Os detalhes do gráfico para a função lambda lambdaandcloudwatch são como mostrados abaixo -
Fornece detalhes como a duração da execução da função Lambda, o número de vezes que é invocada e os erros da função Lambda.