การตรวจสอบและการแก้ไขปัญหาโดยใช้ Cloudwatch
ฟังก์ชั่นที่สร้างใน AWS Lambda ได้รับการตรวจสอบโดย Amazon CloudWatch ช่วยในการบันทึกคำขอทั้งหมดที่ทำกับฟังก์ชัน Lambda เมื่อถูกทริกเกอร์
พิจารณาว่ามีการอัปโหลดโค้ดต่อไปนี้ใน AWS Lambda โดยมีชื่อฟังก์ชันเป็น lambda and cloudwatch.
exports.handler = (event, context, callback) => {
// TODO implement
console.log("Lambda monitoring using amazon cloudwatch");
callback(null, 'Hello from Lambda');
};
เมื่อมีการทดสอบหรือทริกเกอร์ฟังก์ชันคุณควรเห็นรายการใน Cloudwatch เพื่อจุดประสงค์นี้ไปที่บริการของ AWS แล้วคลิก CloudWatch
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/click_cloudwatch.jpg)
เลือกบันทึกจากด้านซ้าย
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/select_left_side.jpg)
เมื่อคุณคลิก Logsมันมีไฟล์ Log Groupsของฟังก์ชัน AWS Lambda ที่สร้างขึ้นในบัญชีของคุณ เลือกฟังก์ชัน anyAWS Lambda และตรวจสอบรายละเอียด ในที่นี้เรากำลังอ้างถึงฟังก์ชัน Lambda พร้อมชื่อ:lambdaandcloudwatch. บันทึกที่เพิ่มในฟังก์ชัน Lambda จะแสดงที่นี่ดังแสดงด้านล่าง -
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/log_groups.jpg)
ตอนนี้ให้เราเพิ่มทริกเกอร์ S3 ในฟังก์ชัน Lambda และดูรายละเอียดบันทึกใน CloudWatch ดังที่แสดงด้านล่าง -
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/s3_trigger.jpg)
ให้เราอัปเดตโค้ด AWS Lambda เพื่อแสดงไฟล์ที่อัปโหลดและชื่อที่เก็บข้อมูลตามที่แสดงในโค้ดด้านล่าง -
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 ตามที่แสดง -
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/s3_store_test.jpg)
เมื่ออัปโหลดไฟล์ฟังก์ชัน AWS Lambda จะถูกทริกเกอร์และข้อความบันทึกคอนโซลจากโค้ด Lambda จะแสดงใน CloudWatch ดังที่แสดงด้านล่าง -
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/cloudwatch_display.jpg)
หากมีข้อผิดพลาด CloudWatch จะให้รายละเอียดข้อผิดพลาดดังที่แสดงด้านล่าง -
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/cloudwatch_details.jpg)
โปรดทราบว่าเราอ้างถึงชื่อที่เก็บข้อมูลในรหัส AWS Lambda อย่างไม่ถูกต้องดังที่แสดง -
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 ดังที่แสดงด้านล่าง -
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/error_displayed.jpg)
CloudWatch Metrics
รายละเอียดของการเรียกใช้ฟังก์ชัน Lambda สามารถดูได้ในเมตริก คลิกMetrics แสดงที่ด้านซ้าย
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/metrics_displayed.jpg)
![](https://post.nghiatu.com/assets/tutorial/aws_lambda/images/all_metrics.jpg)
รายละเอียดกราฟสำหรับฟังก์ชันแลมบ์ดา lambdaandcloudwatch มีดังรูปด้านล่าง -
![](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)
จะให้รายละเอียดเช่นระยะเวลาที่เรียกใช้ฟังก์ชัน Lambda จำนวนครั้งที่เรียกใช้และข้อผิดพลาดจากฟังก์ชันแลมด้า