Skip to main content

Lambda Invocation Types

Lambda รองรับการเรียกใช้งาน (invocation) หลายรูปแบบ ซึ่งแตกต่างกันในเรื่อง วิธีจัดการ response และ error handling

Synchronous Invocation

  • ผู้เรียกรอผลลัพธ์ทันที
  • ใช้โดย: CLI, SDK, API Gateway, ALB, CloudFront (Lambda@Edge)
  • Error handling ต้องทำฝั่ง client (retry)

Asynchronous Invocation

  • ผู้เรียกไม่ต้องรอผลลัพธ์
  • Event ถูกวางใน internal queue แล้ว Lambda process ทีหลัง
  • ใช้โดย: S3, SNS, CloudWatch Events/EventBridge
  • AWS retry อัตโนมัติ 2 ครั้ง (รวม 3 attempts)
  • กำหนด DLQ (SQS/SNS) สำหรับ events ที่ fail
  • Lambda Destinations — ส่ง result ไปยัง SQS/SNS/Lambda/EventBridge (ทั้ง success และ failure)

Event Source Mapping

  • Lambda poll จาก source: SQS, Kinesis, DynamoDB Streams, MSK, MQ
  • Event Source Mapping เรียก Lambda synchronously
  • Batching — ประมวลผลหลาย records พร้อมกัน
  • Error: ทั้ง batch ถูก reprocess จนกว่าจะสำเร็จ (หรือ items expire)
  • DLQ ตั้งที่ SQS, ไม่ใช่ที่ Lambda

สรุป

รูปแบบตัวอย่าง ServiceRetryError Handling
SynchronousAPI Gateway, CLI, ALBClient retryClient จัดการเอง
AsynchronousS3, SNS, EventBridgeAWS retry 2 ครั้งDLQ หรือ Destinations
Event Source MappingSQS, Kinesis, DynamoDB StreamsReprocess batchDLQ ตั้งที่ source (SQS)