Skip to main content

Lambda Best Practices

ในส่วนนี้ เราได้เรียนรู้แนวปฏิบัติที่สำคัญสำหรับ Lambda โดยเฉพาะอย่างยิ่งเมื่อเตรียมตัวสอบ

1. ปรับแต่งการทำงานของ Function Handler

ควรทำงานที่หนัก ๆ นอก function handler เพื่อลดเวลาการทำงานของ handler ให้สั้นที่สุด ตัวอย่างเช่น:

  • เชื่อมต่อฐานข้อมูล นอก function handler
  • ทำการ initialize AWS SDK นอก handler
  • เตรียม dependencies หรือ datasets นอก handler

2. ใช้ Environment Variables

ใช้ environment variables สำหรับค่าที่เปลี่ยนแปลงได้ตามเวลา เช่น:

  • Database connection strings
  • ชื่อ S3 bucket

ห้ามใส่ค่าคงที่ (hardcode) ในโค้ด สำหรับรหัสผ่านหรือค่าที่สำคัญ ให้เข้ารหัส environment variables ด้วย AWS KMS

3. ลดขนาด Deployment Package

  • รวมเฉพาะสิ่งที่จำเป็นสำหรับ runtime
  • ถ้าฟังก์ชันใหญ่เกินไป ให้แยกเป็นฟังก์ชันย่อย
  • คำนึงถึง ข้อจำกัดของ Lambda เรื่องขนาด package
  • หากต้องการใช้ libraries ซ้ำหลายฟังก์ชัน ให้พิจารณาใช้ Lambda Layers

4. หลีกเลี่ยง Recursive Lambda Calls

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

ข้อสรุปสำคัญ (Key Takeaways)

  • ทำงานหนัก ๆ นอก function handler เพื่อลดเวลาการทำงาน
  • ใช้ environment variables สำหรับค่าที่เปลี่ยนแปลง เช่น connection strings และ S3 bucket
  • เข้ารหัสค่าที่สำคัญด้วย AWS KMS
  • ลดขนาด deployment package และพิจารณาใช้ Lambda Layers สำหรับ libraries ที่ใช้ซ้ำ
  • หลีกเลี่ยงการเรียก Lambda ตัวเองแบบ recursive เพื่อป้องกันความเสียหายและค่าใช้จ่ายสูง