การตรวจสอบและการแก้ไขปัญหาโดยใช้ 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

เลือกบันทึกจากด้านซ้าย

เมื่อคุณคลิก Logsมันมีไฟล์ Log Groupsของฟังก์ชัน AWS Lambda ที่สร้างขึ้นในบัญชีของคุณ เลือกฟังก์ชัน anyAWS Lambda และตรวจสอบรายละเอียด ในที่นี้เรากำลังอ้างถึงฟังก์ชัน Lambda พร้อมชื่อ:lambdaandcloudwatch. บันทึกที่เพิ่มในฟังก์ชัน Lambda จะแสดงที่นี่ดังแสดงด้านล่าง -

ตอนนี้ให้เราเพิ่มทริกเกอร์ S3 ในฟังก์ชัน Lambda และดูรายละเอียดบันทึกใน CloudWatch ดังที่แสดงด้านล่าง -

ให้เราอัปเดตโค้ด 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 ตามที่แสดง -

เมื่ออัปโหลดไฟล์ฟังก์ชัน AWS Lambda จะถูกทริกเกอร์และข้อความบันทึกคอนโซลจากโค้ด Lambda จะแสดงใน CloudWatch ดังที่แสดงด้านล่าง -

หากมีข้อผิดพลาด CloudWatch จะให้รายละเอียดข้อผิดพลาดดังที่แสดงด้านล่าง -

โปรดทราบว่าเราอ้างถึงชื่อที่เก็บข้อมูลในรหัส 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 ดังที่แสดงด้านล่าง -

CloudWatch Metrics

รายละเอียดของการเรียกใช้ฟังก์ชัน Lambda สามารถดูได้ในเมตริก คลิกMetrics แสดงที่ด้านซ้าย

รายละเอียดกราฟสำหรับฟังก์ชันแลมบ์ดา lambdaandcloudwatch มีดังรูปด้านล่าง -

จะให้รายละเอียดเช่นระยะเวลาที่เรียกใช้ฟังก์ชัน Lambda จำนวนครั้งที่เรียกใช้และข้อผิดพลาดจากฟังก์ชันแลมด้า