Skip to main content

Lambda Advanced Features

Lambda Layers

  • แชร์ code/libraries ข้าม functions
  • สูงสุด 5 layers ต่อ function
  • เหมาะสำหรับ: custom runtimes, shared dependencies

Lambda Container Images

  • Deploy Lambda เป็น container image ขนาดสูงสุด 10 GB
  • Image ต้อง implement Lambda Runtime API
  • ใช้ ECR เก็บ images

Versions & Aliases

  • Version = snapshot ของ code + configuration (immutable)
  • Alias = pointer ไปยัง version (เช่น "prod" -> v3, "dev" -> v4)
  • Alias ทำ weighted traffic ได้ (เช่น 95% v1, 5% v2 สำหรับ canary)
  • $LATEST = version ที่ mutable

Lambda in VPC

  • Default: Lambda ทำงานนอก VPC -> เข้าถึง public internet ได้ แต่ไม่ได้ private resources
  • Lambda in VPC: ต้องกำหนด Subnet + Security Group -> สร้าง ENI ใน VPC
  • ต้องใช้ NAT Gateway ถ้าต้องการเข้าอินเทอร์เน็ตจาก VPC

Performance

  • Memory: 128 MB - 10,240 MB (เพิ่ม memory = เพิ่ม CPU อัตโนมัติ)
  • Timeout: สูงสุด 15 นาที (900 วินาที)
  • /tmp storage: สูงสุด 10 GB (ephemeral)
  • ที่ 1,769 MB memory = 1 vCPU equivalent

Concurrency

  • Reserved Concurrency — สงวน concurrency ให้ function นี้เท่านั้น
  • Provisioned Concurrency — pre-warm instances เพื่อลด cold start
  • Default limit: 1,000 concurrent per region (ขอเพิ่มได้)
  • Cold Start: ครั้งแรกอาจช้า โดยเฉพาะ Java, .NET

Lambda@Edge & CloudFront Functions

  • CloudFront Functions — lightweight, viewer request/response, sub-ms, JavaScript only
  • Lambda@Edge — heavier, viewer + origin request/response, Node.js/Python, 5-30 sec timeout

สรุป

Featureรายละเอียด
Layersแชร์ code ข้าม functions (สูงสุด 5 layers)
Container ImagesDeploy เป็น image สูงสุด 10 GB
Versions & AliasesImmutable snapshots + weighted traffic
VPCต้องใช้ ENI + NAT Gateway สำหรับ internet
Memory/Timeout128 MB - 10 GB / สูงสุด 15 นาที
ConcurrencyReserved, Provisioned, default 1,000
EdgeCloudFront Functions (lightweight) vs Lambda@Edge (full)