Monitoreo y resolución de problemas con Cloudwatch
Amazon CloudWatch supervisa las funciones creadas en AWS Lambda. Ayuda a registrar todas las solicitudes realizadas a la función Lambda cuando se activa.
Tenga en cuenta que el siguiente código se carga en AWS Lambda con el nombre de función como lambda and cloudwatch.
exports.handler = (event, context, callback) => {
// TODO implement
console.log("Lambda monitoring using amazon cloudwatch");
callback(null, 'Hello from Lambda');
};
Cuando la función se prueba o se activa, debería ver una entrada en Cloudwatch. Para ello, vaya a los servicios de AWS y haga clic en CloudWatch.
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/click_cloudwatch.jpg)
Seleccione los registros del lado izquierdo.
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/select_left_side.jpg)
Cuando haces clic Logs, tiene el Log Groupsde la función AWS Lambda creada en su cuenta. Seleccione cualquier función AWS Lambda y verifique los detalles. Aquí, nos referimos a la función Lambda con nombre:lambdaandcloudwatch. Los registros agregados a la función Lambda se muestran aquí como se muestra a continuación:
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/log_groups.jpg)
Ahora, agreguemos el disparador S3 a la función Lambda y veamos los detalles de los registros en CloudWatch como se muestra a continuación:
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/s3_trigger.jpg)
Actualicemos el código de AWS Lambda para mostrar el archivo cargado y el nombre del depósito como se muestra en el código que se proporciona a continuación:
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');
};
Ahora, agregue el archivo en s3storetestlambdaEventbucket como se muestra -
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/s3_store_test.jpg)
Cuando se carga el archivo, las funciones de AWS Lambda se activan y los mensajes de registro de la consola del código Lambda se muestran en CloudWatch como se muestra a continuación:
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/cloudwatch_display.jpg)
Si hay algún error, CloudWatch proporciona los detalles del error como se muestra a continuación:
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/cloudwatch_details.jpg)
Tenga en cuenta que nos hemos referido al nombre del depósito de forma incorrecta en el código AWS Lambda como se muestra:
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');
};
La referencia del nombre del depósito del evento es incorrecta. Por lo tanto, deberíamos ver un error que se muestra en CloudWatch como se muestra a continuación:
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/error_displayed.jpg)
Métricas de CloudWatch
Los detalles de la ejecución de la función Lambda se pueden ver en las métricas. Hacer clicMetrics mostrado en el lado izquierdo.
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/metrics_displayed.jpg)
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/all_metrics.jpg)
Los detalles del gráfico para la función lambda lambdaandcloudwatch son como se muestra a continuación -
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/graphed_metrics.jpg)
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/graph_details.jpg)
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/graph_details_lambda.jpg)
Proporciona detalles como la duración durante la cual se ejecuta la función Lambda, la cantidad de veces que se invoca y los errores de la función Lambda.