การสร้างฟังก์ชัน Lambda
ฟังก์ชัน AWS Lambda รันโค้ดเมื่อมีการเรียกใช้ บทนี้จะกล่าวถึงขั้นตอนทั้งหมดที่เกี่ยวข้องกับวงจรชีวิตของฟังก์ชัน AWS Lambda โดยละเอียด
ขั้นตอนในการสร้างฟังก์ชัน Lambda
วงจรชีวิตของฟังก์ชัน Lambda ประกอบด้วยขั้นตอนที่จำเป็นสี่ขั้นตอน -
- Authoring
- Deploying
- Monitoring
- Troubleshooting
การเขียนรหัสแลมด้า
โค้ดฟังก์ชัน AWS Lambda สามารถเขียนในภาษาต่อไปนี้ -
- NodeJS
- Java,
- Python
- C#
- Go.
เราสามารถเขียนโค้ดสำหรับ AWS Lambda โดยใช้คอนโซล AWS, AWS CLI จาก Eclipse IDE จาก Visual Studio IDE, เซิร์ฟเวอร์เฟรมเวิร์กเป็นต้น
ตารางต่อไปนี้แสดงรายการภาษาและเครื่องมือและ IDE ต่างๆที่สามารถใช้เขียนฟังก์ชัน Lambda -
ภาษา | IDE สำหรับการเขียนโค้ดแลมบ์ดา |
---|---|
NodeJS | AWS Lambda Console Visual Studio IDE |
Java | Eclipse IDE |
Python | AWS Lambda Console |
ค# | Visual Studio IDE .NET แกน |
ไป | AWS Lambda Console |
การปรับใช้ Lambda Code
เมื่อคุณเลือกภาษาที่คุณต้องการเขียนฟังก์ชันแลมด้าแล้วมีสองวิธีในการปรับใช้โค้ด -
- เขียนโค้ดโดยตรงในคอนโซล AWS
- Zip หรือ jar ไฟล์ด้วยไฟล์และการอ้างอิงทั้งหมด
อย่างไรก็ตามโปรดจำไว้ว่าต้องให้สิทธิ์ที่เหมาะสมกับไฟล์ zip
การทดสอบรหัสแลมด้า
Lambda Code สามารถทดสอบได้สำหรับเหตุการณ์ภายในคอนโซล AWS Lambda นอกจากนี้ยังสามารถทดสอบฟังก์ชัน Lambda จาก AWS cli และ cli แบบไร้เซิร์ฟเวอร์ได้อีกด้วย คอนโซล AWS ยังมีข้อมูลเหตุการณ์ซึ่งสามารถใช้เป็นเหตุการณ์ตัวอย่างขณะทดสอบฟังก์ชัน AWS Lambda
การตรวจสอบฟังก์ชัน Lambda
การตรวจสอบฟังก์ชัน Lambda สามารถทำได้โดยใช้ AWS CloudWatch เราสามารถเพิ่มข้อความบันทึกที่จำเป็นในภาษาที่เราเลือกและเห็นเหมือนกันใน AWS CloudWatch
ในการเริ่มเขียนฟังก์ชัน Lambda มีรูปแบบที่ต้องปฏิบัติตาม ต่อไปนี้เป็นแนวคิดหลักที่ต้องปฏิบัติตามสำหรับการเขียนฟังก์ชัน Lambda -
ตัวจัดการ
Handler คือชื่อของฟังก์ชัน AWS lambda จากจุดที่การเรียกใช้งานเริ่มต้น ปรากฏในคอนโซล AWS ดังที่แสดงด้านล่าง -

โปรดสังเกตว่าที่นี่เราได้เปลี่ยนตัวจัดการเริ่มต้นเป็นชื่ออื่นและอัปเดตเหมือนกันในตัวจัดการ -

โปรดทราบว่าวิธีการเรียกตัวจัดการนั้นแตกต่างจากภาษาที่เลือกเป็นรันไทม์
Params ส่งผ่านไปยังตัวจัดการ
หากคุณสังเกตฟังก์ชันตัวจัดการพารามิเตอร์ที่ส่งผ่านคือ event, context และ call back function ดังแสดงด้านล่าง -

Event พารามิเตอร์มีรายละเอียดทั้งหมดสำหรับทริกเกอร์ที่ใช้
Contextโดยทั่วไปแล้วพารามิเตอร์จะดูแลรายละเอียดรันไทม์เพื่อให้ฟังก์ชัน Lambda ดำเนินการ เราสามารถโต้ตอบกับฟังก์ชัน Lambda โดยใช้ไฟล์contextพารามิเตอร์ มีรายละเอียดเช่นเวลาที่เหลือก่อนที่ AWS Lambda จะยุติฟังก์ชันเช่นหมดเวลาที่ระบุขณะสร้างฟังก์ชัน Lambda ชื่อของฟังก์ชัน Lambda ชื่อกลุ่ม cloudwatch รายละเอียด arn เป็นต้น
ตัวอย่าง
ให้เราเข้าใจรายละเอียดที่ได้รับจากออบเจ็กต์บริบท AWS Lambda ด้วยความช่วยเหลือของตัวอย่าง -
exports.lambdahandler = (event, context, callback) => {
// TODO implement
console.log("context object details");
console.log(JSON.stringify(context));
callback(null, 'Lambda test');
};
เมื่อคุณเรียกใช้ฟังก์ชัน Lambda ที่แสดงด้านบนคุณจะเห็นผลลัพธ์ต่อไปนี้ -
เอาต์พุต

context มีรายละเอียดดังนี้ -
{
"callbackWaitsForEmptyEventLoop":true,"logGroupName":"/aws/lambda/myfirstlambdafunction",
"logStreamName":"2018/05/20/[$LATEST]04f17ee4ff7048d5bb1fedffaa807c71","functionName":
"myfirstlambdafunction","memoryLimitInMB":"128","functionVersion":"$LATEST","invokeid":
"c931e21c-5bf3-11e8-acfe-47fdbb39eee9","awsRequestId":"c931e21c-5bf3-11e8-acfe-47fdbb39eee9",
"invokedFunctionArn":"arn:aws:lambda:us-east-1:625297745038:function:myfirstlambdafunction"
}
สังเกตว่ามีรายละเอียดเช่น functionName, memorylimit, requestId เป็นต้น
การบันทึก
บันทึกที่เพิ่มภายในฟังก์ชัน Lambda จะแสดงใน AWS CloudWatch เมื่อฟังก์ชัน AWS ดำเนินการ ไวยากรณ์ของบันทึกจะแตกต่างกันไปตามภาษาที่เลือก ตัวอย่างเช่นในnodejsมันคือ console.log
นี่คือผลลัพธ์ที่คุณเห็นใน AWSCloudWatch -

การจัดการข้อผิดพลาด
ฟังก์ชัน AWS Lambda มีฟังก์ชันเรียกกลับซึ่งใช้เพื่อแจ้งให้ฟังก์ชัน Lambda ทราบว่ามีข้อผิดพลาดหรือความสำเร็จเกิดขึ้น โปรดทราบว่าที่นี่เราใช้ nodejs เป็นรันไทม์ การจัดการข้อผิดพลาดจะแตกต่างกันไปตามภาษาที่เลือก
ปฏิบัติตามตัวอย่างที่ให้ไว้เพื่อความเข้าใจที่ดีขึ้น -
exports.lambdahandler = (event, context, callback) => {
// TODO implement
var error = new Error("There is error in code");
callback(error);
};
เอาต์พุต
เมื่อคุณทดสอบโค้ดแลมบ์ดาคุณจะพบผลลัพธ์ดังที่แสดงด้านล่าง -

รายละเอียดบันทึกดังต่อไปนี้ -
