คุณสมบัติของ AWS Lambda

ทำไมต้องใช้ AWS Lambda

AWS Lambda เป็นบริการประมวลผลแบบไร้เซิร์ฟเวอร์ที่รันโค้ดของคุณเพื่อตอบสนองต่อเหตุการณ์ต่างๆ และจัดการทรัพยากรการประมวลผลพื้นฐานให้คุณโดยอัตโนมัติ เหตุการณ์เหล่านี้อาจรวมถึงการเปลี่ยนแปลงของสถานะหรือการอัปเดต เช่น ผู้ใช้วางสินค้าในตะกร้าสินค้าบนเว็บไซต์อีคอมเมิร์ซ คุณสามารถใช้ AWS Lambda เพื่อขยายบริการอื่นๆ ของ AWS โดยใช้ตรรกะแบบกำหนดเอง หรือสร้างบริการแบ็คเอนด์ของคุณเองที่ทำงานด้วยขนาด ประสิทธิภาพ และความปลอดภัยของ AWS AWS Lambda รันโค้ดโดยอัตโนมัติเพื่อตอบสนองต่อ หลายเหตุการณ์ เช่น คำขอ HTTP ผ่าน Amazon API Gateway การแก้ไขอ็อบเจ็กต์ใน Amazon Simple Storage Service (Amazon S3) บัคเก็ต การอัปเดตตารางใน Amazon DynamoDB และการเปลี่ยนสถานะใน AWS Step Functions

AWS Lambda จะเรียกใช้โค้ดของคุณในโครงสร้างพื้นฐานด้านการประมวลผลที่มีความพร้อมใช้งานสูงและดำเนินการจัดการทรัพยากรในการประมวลผลทั้งหมดของคุณ ซึ่งรวมถึงการบำรุงรักษาเซิร์ฟเวอร์และระบบปฏิบัติการ การจัดเตรียมความจุและการปรับขนาดอัตโนมัติ การปรับใช้โค้ดและแพตช์ด้านความปลอดภัย ตลอดจนการตรวจสอบและการบันทึกโค้ด สิ่งที่คุณต้องทำคือป้อนโค้ดเท่านั้น

คุณสมบัติหลักของผลิตภัณฑ์

AWS Lambda ช่วยให้คุณเพิ่มตรรกะแบบกำหนดเองลงในทรัพยากร AWS เช่น บัคเก็ต Amazon S3 และตาราง Amazon DynamoDB คุณจึงใช้การประมวลผลกับข้อมูลได้อย่างง่ายดายเมื่อนำเข้าหรือย้ายผ่านระบบคลาวด์

เริ่มต้นใช้งาน AWS Lambda ได้ง่ายๆ ขั้นแรก ให้คุณสร้างฟังก์ชันโดยการอัปโหลดโค้ด (หรือสร้างไว้ในคอนโซล Lambda) และเลือกหน่วยความจำ ระยะหมดเวลา และบทบาท AWS Identity and Access Management (IAM) จากนั้น ให้คุณระบุทรัพยากร AWS เพื่อเรียกใช้ฟังก์ชันดังกล่าว ซึ่งอาจเป็นบัคเก็ต Amazon S3, ตาราง Amazon DynamoDB หรือสตรีม Amazon Kinesis ก็ได้ เมื่อทรัพยากรมีการเปลี่ยนแปลง Lambda จะเรียกใช้ฟังก์ชันของคุณ จากนั้นจะเปิดใช้งานและจัดการทรัพยากรในการประมวลผลตามความจำเป็นเพื่อให้ทันกับคำขอที่เข้ามา

คุณสามารถใช้ AWS Lambda สร้างบริการแอปพลิเคชันแบ็คเอนด์ใหม่ๆ ที่เรียกใช้ได้ตามความต้องการโดยใช้อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ของ Lambda หรือตำแหน่งข้อมูล API แบบกำหนดเองที่สร้างขึ้นโดยใช้ Amazon API Gateway Lambda จะประมวลผลเหตุการณ์แบบกำหนดเองแทนการใช้บริการเหล่านี้บนไคลเอ็นต์ ซึ่งช่วยให้คุณสามารถหลีกเลี่ยงรูปแบบแพลตฟอร์มของไคลเอ็นต์ที่หลากหลาย ลดการใช้แบตเตอรี่ และทำให้อัปเดตได้ง่ายขึ้น

AWS Lambda ทำให้ไม่ต้องเรียนรู้ภาษา เครื่องมือ และเฟรมเวิร์กใหม่ๆ คุณสามารถใช้ไลบรารีจากบุคคลภายนอก หรือแม้กระทั่งแบบเนทีฟก็ได้ คุณสามารถสร้างแพคเกจโค้ด (เฟรมเวิร์ก, SDK, ไลบรารี และอีกมากมาย) ให้เป็นเลเยอร์ Lambda และจัดการแล้วแชร์โค้ดในฟังก์ชันต่างๆ ได้อย่างง่ายดาย Lambda รองรับโค้ด Java, Go, PowerShell, Node.js, C#, Python และ Ruby แบบเนทีฟ และมาพร้อมกับ Runtime API ที่ช่วยให้คุณใช้ภาษาเขียนโปรแกรมเพิ่มเติมเพื่อเขียนฟังก์ชันของคุณได้

AWS Lambda จะจัดการโครงสร้างพื้นฐานทั้งหมดเพื่อเรียกใช้โค้ดของคุณบนโครงสร้างพื้นฐานที่พร้อมใช้งานและทนทานต่อข้อผิดพลาดสูง ทำให้คุณมีเวลาใส่ใจการสร้างบริการแบ็คเอนด์ที่แตกต่างกันได้ Lambda จะทำให้คุณไม่ต้องอัปเดตระบบปฏิบัติการ (OS) พื้นฐานเมื่อปล่อยแพตช์ หรือกังวลเกี่ยวกับการปรับขนาดหรือการเพิ่มเซิร์ฟเวอร์ใหม่เมื่อการใช้งานของคุณเพิ่มมากขึ้นอีกต่อไป AWS Lambda สามารถปรับใช้โค้ดของคุณ จัดการงานด้านการจัดการ การบำรุงรักษา และแพตช์ด้านความปลอดภัยทั้งหมดได้อย่างราบรื่น และมีการบันทึกและตรวจสอบข้อมูลในตัวผ่าน Amazon CloudWatch

AWS Lambda สามารถรักษาความจุในการประมวลผลจาก Availability Zone (AZ) หลายแห่งในแต่ละรีเจี้ยน AWS เพื่อช่วยปกป้องโค้ดของคุณจากความล้มเหลวทางระบบของแต่ละอุปกรณ์หรือศูนย์ข้อมูล ทั้ง AWS Lambda และฟังก์ชันที่กำลังให้บริการจะมอบประสิทธิภาพการทำงานที่คาดการณ์ได้และน่าเชื่อถือ AWS Lambda ได้รับการออกแบบมาเพื่อให้มีความพร้อมใช้งานสูงสำหรับทั้งบริการและฟังก์ชันที่ดำเนินการ ไม่มีระยะเวลาการบำรุงรักษาหรือเวลาหยุดทำงานที่กำหนดไว้

AWS Lambda รองรับการสร้างแพคเกจฟังก์ชันและการปรับใช้เป็นอิมเมจคอนเทนเนอร์ ทำให้ลูกค้าสามารถสร้างแอปพลิเคชันที่ใช้ Lambda ได้ง่ายๆ โดยใช้เครื่องมืออิมเมจคอนเทนเนอร์ เวิร์กโฟลว์ และการอ้างอิงที่คุ้นเคย นอกจากนี้ ลูกค้ายังจะได้รับประโยชน์จากความง่ายดายในการดำเนินงาน การปรับขนาดอัตโนมัติด้วยเวลาเริ่มต้นใหม่เพียงเสี้ยววินาที ความพร้อมใช้งานสูง โมเดลการเรียกเก็บเงินตามการใช้งานจริง ตลอดจนการผสานรวมแบบเนทีฟกับบริการของ AWS และแอปพลิเคชันซอฟต์แวร์เป็นบริการ (SaaS) กว่า 200 รายการของ Lambda ลูกค้าองค์กรสามารถใช้ชุดเครื่องมือที่มีความสอดคล้องกันทั้งจาก Lambda และแอปพลิเคชันในคอนเทนเนอร์ ซึ่งจะช่วยลดความซับซ้อนของข้อกำหนดด้านการกำกับดูแลจากส่วนกลาง เช่น การสแกนเพื่อความปลอดภัยและการเซ็นชื่อในรูปภาพ

AWS Lambda จะเรียกใช้โค้ดของคุณเฉพาะเมื่อจำเป็น และปรับขนาดโดยอัตโนมัติเพื่อรองรับอัตราคำขอที่เข้ามาโดยไม่ต้องกำหนดค่าใดๆ ด้วยตนเอง ไม่จำกัดจำนวนคำขอที่โค้ดของคุณสามารถจัดการได้ โดยทั่วไปแล้ว AWS Lambda จะเริ่มเรียกใช้โค้ดของคุณภายในมิลลิวินาทีของเหตุการณ์ เนื่องจาก Lambda จะปรับขนาดโดยอัตโนมัติ ประสิทธิภาพจึงยังคงอยู่ในระดับสูงอย่างต่อเนื่องเมื่อความถี่ของเหตุการณ์เพิ่มขึ้น เนื่องจากโค้ดของคุณไม่มีสถานะ Lambda จึงสามารถเริ่มต้นใช้งานได้หลายอินสแตนซ์ตามต้องการโดยไม่ต้องปรับใช้งานเป็นเวลานานและไม่เกิดความล่าช้าในการกำหนดค่า

ใช้ พร็อกซีของ Amazon RDS เพื่อใช้ประโยชน์จากพูลการเชื่อมต่อที่มีการจัดการอย่างเต็มรูปแบบสำหรับฐานข้อมูลแบบเชิงสัมพันธ์ RDS Proxy จะจัดการกับการเชื่อมต่อฐานข้อมูลเชิงสัมพันธ์พร้อมกันหลายพันรายการได้อย่างมีประสิทธิภาพ ทำให้ง่ายต่อการสร้างแอปพลิเคชันแบบไร้เซิร์ฟเวอร์ที่ใช้ Lambda ซึ่งปรับขนาดได้มากและปลอดภัย เพื่อโต้ตอบกับฐานข้อมูลเชิงสัมพันธ์ ปัจจุบัน RDS Proxy รองรับ MySQL และ Aurora คุณสามารถใช้ RDS Proxy สำหรับแอปพลิเคชันแบบไร้เซิร์ฟเวอร์ผ่านคอนโซล Amazon RDS หรือคอนโซล AWS Lambda

กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานช่วยให้คุณสามารถควบคุมประสิทธิภาพการทำงานของแอปพลิเคชันแบบไร้เซิร์ฟเวอร์ได้ดียิ่งขึ้น เมื่อเปิดใช้งานแล้ว กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานจะเริ่มต้นฟังก์ชันต่างๆ และพร้อมตอบสนองภายในเวลามิลลิวินาทีสองหลัก กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานนั้นเหมาะสำหรับแอปพลิเคชัน AWS Lambda ที่ต้องการให้มีการควบคุมเวลาเริ่มฟังก์ชันที่ดียิ่งขึ้น กำหนดค่าและปรับกระบวนการทำงานพร้อมกันที่แอปพลิเคชันของคุณต้องการได้อย่างง่ายดาย ปรับขนาดเพิ่มขึ้น ลดลง หรือปิดใช้งานอย่างสมบูรณ์ตามความต้องการ ใช้ประโยชน์จากกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานเพื่อให้มีประสิทธิภาพที่สม่ำเสมอสำหรับแอปพลิเคชันที่ไวต่อเวลาแฝง โดยไม่ต้องเปลี่ยนโค้ดของคุณหรือจัดการทรัพยากรการประมวลผล

เมื่อใช้ Amazon Elastic File System (EFS) สำหรับ AWS Lambda คุณสามารถอ่าน เขียน และเก็บรักษาข้อมูลจำนวนมากได้อย่างปลอดภัยในเวลาแฝงที่ต่ำในทุกขนาด คุณไม่จำเป็นต้องเขียนโค้ดและดาวน์โหลดข้อมูลไปยังพื้นที่จัดเก็บชั่วคราวเพื่อประมวลผลข้อมูลนั้น ซึ่งช่วยประหยัดเวลาและลดความซับซ้อนของโค้ด คุณจึงมุ่งเน้นไปที่ตรรกะทางธุรกิจของคุณได้ EFS สำหรับ Lambda เหมาะสำหรับกรณีการใช้งานต่างๆ เช่น การประมวลผลหรือการสำรองข้อมูลจำนวนมาก และการโหลดไฟล์หรือโมเดลอ้างอิงขนาดใหญ่ นอกจากนี้ คุณยังสามารถแชร์ไฟล์ต่างๆ ระหว่างอินสแตนซ์แบบไร้เซิร์ฟเวอร์หรือแอปพลิเคชันที่ใช้คอนเทนเนอร์ และแม้แต่เรียกใช้การอนุมานแมชชีนเลิร์นนิ่ง (ML) โดยใช้ EFS สำหรับ AWS Lambda ได้อีกด้วย

Lambda@Edge ทำให้ AWS Lambda สามารถเรียกใช้โค้ดของคุณได้จากตำแหน่งที่ตั้งของ AWS ทั่วโลกเพื่อตอบสนองต่อเหตุการณ์ Amazon CloudFront เช่น คำขอเนื้อหาไปยังหรือจากเซิร์ฟเวอร์และผู้ชมต้นทาง ซึ่งทำให้ส่งมอบเนื้อหาที่สมบูรณ์และมีความเฉพาะตัวมากขึ้นไปยังผู้ใช้ปลายทางของคุณโดยมีเวลาแฝงที่ลดลงได้ง่ายยิ่งขึ้น 

สร้างเวิร์กโฟลว์ AWS Step Functions เพื่อประสานรวมฟังก์ชัน AWS Lambda ที่หลากหลายสำหรับงานที่ซับซ้อนหรือใช้เวลานาน Step Functions ช่วยให้คุณสามารถกำหนดเวิร์กโฟลว์ที่เรียกใช้ชุดรวมของฟังก์ชัน Lambda โดยใช้ขั้นตอนต่อเนื่อง แบบขนาน แบบแยก และการจัดการข้อผิดพลาด Step Functions และ Lambda ทำให้คุณสามารถสร้างกระบวนการที่จดจำสถานะและทำงานได้ยาวนานสำหรับแอปพลิเคชันและแบ็คเอนด์

Software Development Kit (SDK) ในตัวของ AWS Lambda จะผสานรวมกับ AWS Identity and Access Management (IAM) เพื่อรับรองการเข้าถึงโค้ดที่ปลอดภัยสำหรับบริการอื่น ๆ ของ AWS AWS Lambda จะเรียกใช้โค้ดของคุณภายใน Amazon Virtual Private Cloud (VPC) ตามค่าเริ่มต้น คุณสามารถเลือกกำหนดค่าการเข้าถึงทรัพยากร AWS Lambda ที่อยู่เบื้องหลัง VPC ของคุณเองได้เพื่อใช้ประโยชน์จากกลุ่มความปลอดภัยแบบกำหนดเองและรายการควบคุมการเข้าถึงเครือข่าย วิธีนี้จะช่วยให้ฟังก์ชัน Lambda ที่ปลอดภัยเข้าถึงทรัพยากรของคุณภายใน VPC ได้ AWS Lambda เป็นไปตามมาตรฐาน SOCHIPAAPCI และ ISO สำหรับการรับรอง Lambda ล่าสุดและความพร้อมในการปฏิบัติตามข้อกำหนด โปรดดูที่บริการที่อยู่ในขอบเขตทั้งหมด

การลงชื่อโค้ดสำหรับ AWS Lambda ช่วยให้คุณตรวจสอบยืนยันว่ามีเฉพาะโค้ดที่ไม่มีการปรับเปลี่ยนที่เผยแพร่โดยนักพัฒนาที่ได้รับอนุมัติเท่านั้นที่จะนำไปปรับใช้ในฟังก์ชัน Lambda ของคุณ คุณเพียงสร้างตัวโค้ดที่มีการลงชื่อดิจิทัลและกำหนดค่าฟังก์ชัน Lambda ของคุณให้ตรวจสอบยืนยันลายเซ็นเมื่อมีการปรับใช้งาน การทำเช่นนี้จะเพิ่มความเร็วและความคล่องตัวในการพัฒนาแอปพลิเคชันของคุณไปพร้อมกับการใช้มาตรฐานการรักษาความปลอดภัยขั้นสูง แม้อยู่ภายในทีมขนาดใหญ่

เมื่อใช้ AWS Lambda คุณสามารถชำระเงินตามระยะเวลาดำเนินการแทนการชำระตามหน่วยเซิร์ฟเวอร์ได้ เมื่อใช้ฟังก์ชัน Lambda คุณจะชำระเฉพาะคำขอที่ได้รับบริการและเวลาประมวลผลที่จำเป็นในการเรียกใช้โค้ดของคุณ ระบบจะเรียกเก็บค่าบริการเมื่อใช้เกินหนึ่งมิลลิวินาที ซึ่งช่วยให้การปรับขนาดอัตโนมัติจากคำขอไม่กี่ครั้งต่อวันเป็นหลายพันครั้งต่อวินาทีเป็นไปโดยง่ายและคุ้มค่าใช้จ่าย เมื่อใช้กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน คุณจะชำระเงินตามจำนวนกระบวนการทำงานพร้อมกันและตามระยะเวลาที่คุณกำหนดค่าไว้ เมื่อเปิดใช้งานกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานและดำเนินการฟังก์ชันของคุณแล้ว คุณยังต้องชำระเงินตามคำขอและระยะเวลาดำเนินการอีกด้วย เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับค่าบริการ โปรดไปที่ ค่าบริการ AWS Lambda

เลือกจำนวนหน่วยความจำที่ต้องการจัดสรรให้กับฟังก์ชันต่างๆ แล้ว AWS Lambda จะจัดสรรกำลังของ CPU, แบนด์วิดท์เครือข่าย และอินพุต/เอาท์พุต (I/O) ของดิสก์ตามสัดส่วน

ส่วนขยายของ AWS Lambda ช่วยให้คุณสามารถผสานรวม Lambda เข้ากับเครื่องมือการตรวจสอบ การเฝ้าสังเกต การรักษาความปลอดภัย และการกำกับดูแลที่คุณโปรดปรานได้ Lambda จะเรียกใช้ฟังก์ชันของคุณในสภาพแวดล้อมการดำเนินการ ซึ่งจะมอบรันไทม์ที่ปลอดภัยและแยกต่างหากโดยเป็นที่ที่โค้ดของฟังก์ชันของคุณดำเนินการอยู่ ส่วนขยายของ Lambda จะทำงานภายในสภาพแวดล้อมการดำเนินการของ Lambda ควบคู่ไปกับโค้ดของฟังก์ชันของคุณ ส่วนขยายของ Lambda สามารถใช้ AWS Lambda Telemetry API เพื่อบันทึกข้อมูลการวินิจฉัยอย่างละเอียด ตัวอย่างเช่น ข้อมูลบันทึก ตัววัด และการติดตามจาก Lambda โดยตรงแล้วส่งไปยังปลายทางตามที่คุณเลือก คุณยังสามารถใช้ส่วนขยายเพื่อผสานเอเจนต์การรักษาความปลอดภัยที่ต้องการเข้ากับ Lambda ได้ ซึ่งทั้งหมดนี้ไม่ต้องเสียค่าใช้จ่ายในการดำเนินการและยังลดผลกระทบต่อประสิทธิภาพการทำงานของคุณด้วย

ฟังก์ชัน AWS Lambda ที่ทำงานบน Graviton2 โดยใช้สถาปัตยกรรมตัวประมวลผลแบบ Arm ที่ออกแบบโดย AWS ให้ประสิทธิภาพด้านราคาที่ดีขึ้นถึง 34% เมื่อเทียบกับฟังก์ชันที่ทำงานบนตัวประมวลผลแบบ x86 ซึ่งใช้กับปริมาณงานแบบไร้เซิร์ฟเวอร์ที่หลากหลาย เช่น แบ็คเอนด์ของเว็บและมือถือ ข้อมูล และการประมวลผลสื่อ ฟังก์ชัน Graviton2 สามารถใช้เพื่อขับเคลื่อนแอปพลิเคชันแบบไม่ต้องใช้เซิร์ฟเวอร์ที่สำคัญต่อภารกิจได้ โดยมีเวลาแฝงที่ต่ำกว่า ประสิทธิภาพดีขึ้นสูงสุด 19% ค่าใช้จ่ายที่ต่ำลง 20% และประสิทธิภาพพลังงานสูงสุดที่ AWS มีให้บริการในปัจจุบัน

AWS Lambda ผสานรวมกับ บริการอื่น ๆ ของ AWS เพื่อให้มีการตรวจสอบในตัวสําหรับฟังก์ชัน Lambda ของคุณ เพื่อช่วยคุณตรวจสอบและแก้ไขปัญหา Lambda จะตรวจสอบฟังก์ชันแทนคุณโดยอัตโนมัติและรายงานข้อมูลบันทึกไปยัง Amazon CloudWatch Logs รายงานตัววัดไปยังตัววัด Amazon CloudWatch และติดตามข้อมูลไปยัง AWS X-Ray (หากเปิดใช้งานการติดตามสําหรับฟังก์ชัน) เพื่อให้คุณควบคุมวิธีการบันทึก ประมวลผล และใช้งานข้อมูลบันทึกฟังก์ชัน Lambda ได้มากขึ้น Lambda จึงมอบ การควบคุมการบันทึกขั้นสูง เช่น ความสามารถในการบันทึกข้อมูลบันทึก Lambda รูปแบบในโครงสร้าง JSON แบบเนทีฟ ควบคุมการกรองระดับข้อมูลบันทึกสําหรับข้อมูลบันทึกโดยไม่ต้องทําการเปลี่ยนแปลงโค้ด และปรับแต่งกลุ่มข้อมูลบันทึก Amazon CloudWatch ที่ Lambda ส่งบันทึกไป คุณยังสามารถใช้ ข้อมูลเชิงลึกของ Lambda ใน Amazon CloudWatch เพื่อรวบรวมตัววัดประสิทธิภาพที่ปรับปรุงและข้อมูลบันทึกขั้นสูงสําหรับฟังก์ชันของคุณ นอกจากนี้ Lambda ยังช่วยให้คุณสามารถใช้ เครื่องมือตรวจสอบและข้อมูลการสังเกตจากผู้ให้บริการเครื่องมือที่คุณต้องการ ผ่านส่วนขยาย Lambda ได้อย่างง่ายดาย