คำถามที่พบบ่อยเกี่ยวกับ AWS Lambda
ข้อมูลทั่วไป
เปิดทั้งหมดโปรดดูรายชื่อแหล่งเหตุการณ์ทั้งหมดได้จากเอกสารประกอบของเรา
ฟังก์ชัน AWS Lambda แต่ละตัวทำงานในสภาพแวดล้อมที่เป็นเอกเทศโดยใช้ทรัพยากรและมุมมองระบบไฟล์ของตัวเอง AWS Lambda ใช้เทคนิคเดียวกับ Amazon EC2 เพื่อให้การรักษาความปลอดภัยและการแยกระดับโครงสร้างพื้นฐานและการปฏิบัติงาน ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบ
AWS Lambda จัดเก็บโค้ดใน Amazon S3 และเข้ารหัสขณะที่ไม่ได้ใช้งาน AWS Lambda ตรวจสอบความถูกต้องเพิ่มเติมในขณะที่โค้ดของคุณใช้งานอยู่ สำหรับข้อมูลที่ละเอียดอ่อน เช่น รหัสผ่านของฐานข้อมูล เราขอแนะนำให้ใช้การเข้ารหัสฝั่งไคลเอ็นต์โดยใช้ AWS Key Management Service และจัดเก็บค่าผลลัพธ์เป็น Ciphertext ในตัวแปรสภาพแวดล้อมของคุณ คุณจะต้องใส่ตรรกะในโค้ดฟังก์ชัน AWS Lambda เพื่อถอดรหัสค่าเหล่านี้ ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบ
-
การเก็บรักษาฟังก์ชันแบบไม่มีสถานะทำให้ AWS Lambda สามารถเปิดใช้งานสำเนาของฟังก์ชันได้อย่างรวดเร็วตามต้องการเพื่อปรับขนาดให้เหมาะสมกับอัตราเหตุการณ์ที่เข้ามา ขณะที่รูปแบบการเขียนโปรแกรมของ AWS Lambda เป็นแบบไม่มีสถานะ โค้ดของคุณสามารถเข้าถึงข้อมูลแบบมีสถานะได้โดยเรียกใช้บริการเว็บอื่น ๆ เช่น Amazon S3 หรือ Amazon DynamoDB
ใช่ คุณสามารถสร้างและแก้ไขตัวแปรทางสภาพแวดล้อมได้จาก AWS Lambda Console, CLI หรือ SDK หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับตัวแปรทางสภาพแวดล้อม โปรดดูเอกสารประกอบ
สำหรับข้อมูลที่ละเอียดอ่อน เช่น รหัสผ่านของฐานข้อมูล เราขอแนะนำให้ใช้การเข้ารหัสฝั่งไคลเอ็นต์โดยใช้ AWS Key Management Service และจัดเก็บค่าผลลัพธ์เป็น Ciphertext ในตัวแปรสภาพแวดล้อมของคุณ คุณจะต้องใส่ตรรกะในโค้ดฟังก์ชัน AWS Lambda เพื่อถอดรหัสค่าเหล่านี้
ได้ คุณสามารถจัดแพ็กเกจโค้ด (เฟรมเวิร์ก, SDK, ไลบรารี และอีกมากมาย) เช่น Lambda Layer และจัดการแล้วแบ่งปันโค้ดกับหลายฟังก์ชันได้อย่างง่ายดาย
AWS Lambda ตรวจสอบฟังก์ชัน Lambda แทนคุณโดยอัตโนมัติ รายงานเมตริกแบบเรียลไทม์ผ่าน Amazon CloudWatch รวมถึงคำขอทั้งหมด การใช้งานพร้อมกันระดับบัญชีและฟังก์ชัน เวลาแฝง อัตราข้อผิดพลาด และคำขอที่ถูกจำกัด คุณสามารถดูสถิติสำหรับแต่ละฟังก์ชัน Lambda ได้ผ่านทาง Console ของ Amazon CloudWatch หรือผ่าน Console ของ AWS Lambda นอกจากนี้คุณยังสามารถเรียก API ตรวจสอบบุคคลภายนอกในฟังก์ชัน Lambda ได้ด้วย
ไปที่ตัววัดการแก้ปัญหาของ CloudWatch เพื่อเรียนรู้เพิ่มเติม ค่ามาตรฐานสำหรับ AWS Lambda จะนำมาใช้กับตัววัดในตัวของ Lambda
ในรูปแบบทรัพยากร AWS Lambda คุณจะเลือกจำนวนหน่วยความจำที่คุณต้องการสำหรับฟังก์ชันของคุณและได้รับการจัดสรรกำลัง CPU และทรัพยากรอื่น ๆ ตามสัดส่วน ตัวอย่างเช่น การเลือกหน่วยความจำ 256 MB จะจัดสรรพลังงาน CPU ให้กับฟังก์ชัน Lambda ของคุณมากกว่าสองเท่าโดยประมาณหากเทียบกับการขอหน่วยความจำ 128 MB และจัดสรรพลังงาน CPU เพียงครึ่งเดียวหากเทียบกับการเลือกหน่วยความจำ 512 MB หากต้องการเรียนรู้เพิ่มเติม ให้ดูที่เอกสารประกอบการกำหนดค่าฟังก์ชัน
คุณสามารถตั้งค่าหน่วยความจำของคุณได้ตั้งแต่ 128 MB ไปจนถึง 10,240 MB
-
ฟังก์ชัน AWS Lambda สามารถกำหนดค่าให้ทำงานได้สูงสุดถึง 15 นาทีต่อการดำเนินการ คุณสามารถตั้งค่าการหมดเวลาเป็นค่าใดก็ได้ระหว่าง 1 วินาทีถึง 15 นาที
AWS Lambda มีค่าใช้จ่ายตามจำนวนครั้งที่ใช้งาน โปรดดูรายละเอียดในหน้าราคาของ AWS Lambda
ใช่ โดยค่าเริ่มต้นแล้ว ฟังก์ชัน AWS Lambda แต่ละอันจะมีโค้ดเวอร์ชันปัจจุบันอยู่แล้ว ไคลเอ็นต์ของฟังก์ชัน Lambda ของคุณสามารถเรียกใช้เวอร์ชันที่เฉพาะเจาะจงหรือรับการใช้งานล่าสุดได้ โปรดอ่านเอกสารประกอบเกี่ยวกับการกำหนดเวอร์ชันของฟังก์ชัน Lambda
AWS Lambda นำเสนอตัวเลือกการนำไปใช้จริงที่ยืดหยุ่น: แพ็คเกจและปรับใช้ฟังก์ชันเป็นไฟล์ .zip เก็บถาวรที่คุณสามารถอัปโหลดได้โดยตรงผ่านคอนโซล, CLI หรือ SDK หรือเป็นอิมเมจคอนเทนเนอร์ ทั้งสองวิธีให้สภาพแวดล้อมการดำเนินการ การปรับขนาด และความเรียบง่ายในการดำเนินงานที่เหมือนกัน ทำให้คุณมีความยืดหยุ่นในการเลือกวิธีการที่เหมาะกับเวิร์กโฟลว์ของคุณมากที่สุด
ใช้ AWS Lambda เพื่อประมวลผลเหตุการณ์ AWS
เปิดทั้งหมด-
แหล่งเหตุการณ์คือบริการของ AWS หรือแอปพลิเคชันที่นักพัฒนาสร้างขึ้นซึ่งสร้างเหตุการณ์ที่เรียกใช้ฟังก์ชัน AWS Lambda เพื่อใช้งาน บริการบางอย่างเผยแพร่เหตุการณ์เหล่านี้ไปยัง Lambda ด้วยการเรียกใช้ฟังก์ชันระบบคลาวด์โดยตรง (ยกตัวอย่างเช่น Amazon S3) Lambda ยังสามารถสำรวจทรัพยากรในบริการอื่น ๆ ที่ไม่ได้เผยแพร่เหตุการณ์ไปยัง Lambda ตัวอย่างเช่น Lambda สามารถดึงบันทึกจากสตรีม Amazon Kinesis หรือคิว Amazon SQS และเรียกใช้ฟังก์ชัน Lambda สำหรับข้อความที่ดึงมาแต่ละรายการ บริการอื่น ๆ เช่น AWS CloudTrail สามารถทำหน้าที่เป็นแหล่งเหตุการณ์ได้เพียงแค่ลงชื่อเข้าใช้ Amazon S3 และใช้การแจ้งเตือนบัคเก็ต S3 เพื่อเรียกใช้ฟังก์ชัน AWS Lambda
คุณสามารถเรียกดำเนินการฟังก์ชัน Lambda ได้โดยใช้เหตุการณ์ที่กำหนดเองผ่านทาง API เรียกดำเนินการของ AWS Lambda เฉพาะเจ้าของฟังก์ชันหรือบัญชี AWS อื่นที่เจ้าของให้สิทธิ์เท่านั้นที่จะสามารถเรียกใช้ฟังก์ชันได้ โปรดไปที่คู่มือนักพัฒนา Lambda เพื่อเรียนรู้เพิ่มเติม
-
คุณสามารถเรียกใช้ฟังก์ชัน Lambda ผ่าน HTTPS ได้โดยการกำหนด RESTful API เองโดยใช้เกตเวย์ของ Amazon API วิธีนี้จะช่วยมอบตำแหน่งข้อมูลสำหรับฟังก์ชันของคุณซึ่งสามารถตอบสนองต่อการเรียกใช้งาน REST ได้ เช่น GET, PUT และ POST อ่านเพิ่มเติมเกี่ยวกับการใช้ AWS Lambda กับเกตเวย์ของ Amazon API
AWS Lambda SnapStart
เปิดทั้งหมดAWS Lambda SnapStart สามารถปรับปรุงประสิทธิภาพในการเริ่มใช้งานจากหลายวินาทีเป็นต่ำที่สุดจนเท่ากับวินาทีย่อยสำหรับแอปพลิเคชันที่อ่อนไหวต่อเวลาแฝง SnapStart ทำงานโดยการสแนปช็อตสถานะหน่วยความจำ (และดิสก์) ที่เริ่มต้นของฟังก์ชันของคุณ และแคชสแนปช็อตนี้เพื่อเข้าถึงเวลาแฝงต่ำ เมื่อเรียกดำเนินการฟังก์ชันของคุณในภายหลัง Lambda จะดำเนินการต่อในสภาพแวดล้อมการดำเนินการจากสแนปช็อตที่เริ่มต้นล่วงหน้านี้แทนที่จะเริ่มต้นสแนปช็อตดังกล่าวตั้งแต่แรก ซึ่งจะช่วยลดเวลาแฝงในการเริ่มใช้งานได้ เพื่อความยืดหยุ่น Lambda จะเก็บสำเนาแคชของสแนปช็อตของคุณและนำไปใช้กับการอัปเดตซอฟต์แวร์โดยอัตโนมัติ เช่น การอัปเกรดรันไทม์และแพตช์ความปลอดภัยไปยังสแนปช็อตดังกล่าว ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบ
Lambda SnapStart คือการกำหนดค่าระดับฟังก์ชันอย่างง่ายที่สามารถกำหนดค่าสำหรับฟังก์ชันทั้งอันใหม่และอันที่มีอยู่ด้วยการใช้งาน Lambda API, คอนโซลการจัดการของ AWS, อินเทอร์เฟซบรรทัดคำสั่ง (CLI) ของ AWS, AWS SDK, AWS Cloud Development Kit (CDK), AWS CloudFormation และโมเดลแอปพลิเคชันแบบไม่ต้องใช้เซิร์ฟเวอร์ (SAM) ของ AWS เมื่อคุณตั้งค่า Lambda SnapStart ทุกเวอร์ชันของฟังก์ชันที่เผยแพร่หลังจากนั้นจะได้รับประโยชน์จากการปรับปรุงประสิทธิภาพในการเริ่มต้นที่ให้โดย Lambda SnapStart เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ Lambda SnapStart โปรดดูที่ เอกสารประกอบ
Lambda SnapStart คือการเพิ่มประสิทธิภาพที่ช่วยให้ฟังก์ชันของคุณใช้เวลาเริ่มต้นเร็วขึ้น โดยใช้การลดเวลาแฝงของตัวแปรที่เกิดขึ้นระหว่างการดำเนินการทดสอบโค้ดการเริ่มต้นแบบครั้งเดียว ในระหว่างที่ Lambda SnapStart ลดเวลาแฝงในการเริ่มใช้งานลง การทำงานนี้เป็นการเพิ่มประสิทธิภาพที่ดีที่สุดแต่ไม่รับประกันว่าจะหยุดการทำงานของการเริ่มต้นโค้ด หากแอปพลิเคชันมีข้อกำหนดด้านเวลาแฝงที่เข้มงวดและต้องการเวลาเริ่มต้นด้วยตัวเลขสองหลักในระดับมิลลิวินาที เราขอแนะนำให้คุณใช้ PC
Lambda SnapStart รองรับรันไทม์หลายรายการ รวมถึง Java 11 (และใหม่กว่า), Python 3.12 (และใหม่กว่า) และ .NET 8 (และใหม่กว่า) เวอร์ชันในอนาคตของรันไทม์จะได้รับการรองรับหลังจากมีการเปิดตัว สำหรับรันไทม์ที่ Lambda รองรับทั้งหมดดูได้ที่เอกสารประกอบรันไทม์ Lambda
-
ไม่ Lambda SnapStart และ PC ไม่สามารถเปิดใช้งานพร้อมกันได้ในฟังก์ชันตัวเดียวกัน
ใช่ คุณสามารถปรับแต่งฟังก์ชันของ Lambda SnapStart เพื่อเข้าถึงทรัพยากรใน Virtual Private Cloud (VPC) ได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตั้งค่าฟังก์ชันด้วย VPC ดูได้ที่เอกสารประกอบ Lambda
ใช่ ระบบจะเรียกเก็บเงินคุณสำหรับการแคชสแนปช็อตในช่วงเวลาที่เวอร์ชันฟังก์ชันของคุณใช้งานอยู่ ซึ่งเป็นเวลาอย่างน้อย 3 ชั่วโมงและต่อมิลลิวินาทีหลังจากนั้น ราคาจะขึ้นอยู่กับจำนวนหน่วยความจำที่คุณใช้กับฟังก์ชันของคุณ นอกจากนี้ ระบบจะเรียกเก็บเงินคุณทุกครั้งที่ Lambda กลับมาดำเนินการในสภาพแวดล้อมการดำเนินการโดยการกู้คืนสแนปช็อตของคุณด้วยเช่นกัน โดยราคาขึ้นอยู่กับจำนวนหน่วยความจำที่คุณจัดสรรให้กับฟังก์ชันของคุณ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการกำหนดราคา SnapStart โปรดไปที่ค่าบริการ AWS Lambda
ค่าบริการ SnapStart จะไม่นำไปใช้กับรันไทม์ที่ได้รับการจัดการโดย Java ที่รองรับ ซึ่งสามารถแคชสแนปช็อตได้นานถึง 14 วันเท่านั้น
กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน
เปิดทั้งหมดกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานช่วยให้คุณสามารถควบคุมประสิทธิภาพการทำงานของแอปพลิเคชันแบบไร้เซิร์ฟเวอร์ได้ดียิ่งขึ้น เมื่อเปิดใช้งานแล้ว กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานจะเริ่มต้นฟังก์ชันต่าง ๆ และพร้อมตอบสนองภายในเวลามิลลิวินาทีสองหลัก
คุณสามารถกำหนดค่ากระบวนการทำงานพร้อมกันในฟังก์ชันของคุณได้ผ่านคอนโซลการจัดการของ AWS, Lambda API, AWS CLI และ AWS CloudFormation วิธีที่ง่ายที่สุดที่จะได้รับประโยชน์จากกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานนั้นคือการใช้งาน AWS Auto Scaling คุณสามารถใช้ Auto Scaling ของแอปพลิเคชันเพื่อกำหนดค่าตารางเวลา หรือให้ Auto Scaling ปรับระดับกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานโดยอัตโนมัติแบบเรียลไทม์เมื่อความต้องการเปลี่ยนแปลง หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน โปรดดูที่เอกสารประกอบ
กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานจะเพิ่มขอบเขตราคาของ “กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน” เพื่อให้ฟังก์ชันเริ่มต้นทำงานต่อไป เมื่อเปิดใช้งานแล้ว คุณจะชำระเงินตามจำนวนกระบวนการทำงานพร้อมกันที่คุณกำหนดค่าและตามรอบระยะเวลาที่คุณกำหนดค่า เมื่อฟังก์ชันของคุณได้ดำเนินการในขณะที่มีการกำหนดค่ากระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน คุณยังต้องชำระเงินตามคำขอและระยะเวลาดำเนินการ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับราคาของกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน โปรดดูที่ค่าบริการ AWS Lambda
-
กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานนั้นเหมาะสำหรับการสร้างแอปพลิเคชันที่มีการตอบสนองอย่างรวดเร็ว เช่น แบ็กเอนด์เว็บหรือมือถือ, API ที่เรียกดำเนินการแบบซิงโครนัส และไมโครเซอร์วิสเชิงโต้ตอบ คุณสามารถกำหนดค่าจำนวนกระบวนการทำงานพร้อมกันที่เหมาะสมตามความต้องการเฉพาะของแอปพลิเคชันได้อย่างง่ายดาย คุณสามารถเพิ่มจำนวนกระบวนการทำงานพร้อมกันในช่วงเวลาที่มีความต้องการสูงและลดลงได้ หรือปิดใช้งานอย่างสมบูรณ์เมื่อมีความต้องการน้อยลง
Lambda@Edge
เปิดทั้งหมดLambda@Edge ช่วยให้คุณเรียกใช้โค้ดในตำแหน่งที่ตั้งของ AWS ทั่วโลกได้โดยไม่ต้องจัดเตรียมหรือจัดการเซิร์ฟเวอร์ เพื่อตอบสนองต่อผู้ใช้ปลายทางด้วยเวลาแฝงของเครือข่ายที่ต่ำที่สุด เพียงคุณอัปโหลดโค้ด Node.js หรือ Python ไปยัง AWS Lambda และกำหนดค่าฟังก์ชันของคุณให้สามารถเรียกใช้เพื่อตอบสนองต่อคำขอ Amazon CloudFront (เช่น เมื่อได้รับคำขอจากผู้ชม เมื่อส่งต่อหรือรับคำขอกลับมาจากต้นทาง และก่อนที่จะตอบสนองกลับไปยังผู้ใช้ปลายทาง) จากนั้นโค้ดจะพร้อมดำเนินการในตำแหน่งที่ตั้งต่างๆ ของ AWS ทั่วโลกเมื่อได้รับคำขอเนื้อหา และจะปรับตามปริมาณคำขอ CloudFront ทั่วโลก เรียนรู้เพิ่มเติมได้ในเอกสารประกอบของเรา
เมื่อต้องการใช้ Lambda@Edge คุณเพียงอัปโหลดโค้ดของคุณไปที่ AWS Lambda และเชื่อมโยงเวอร์ชันฟังก์ชันที่จะเรียกใช้เพื่อตอบสนองคำขอ Amazon CloudFront โค้ดของคุณต้องเป็นไปตาม Service Limits ของ Lambda@Edge Lambda@Edge รองรับ Node.js และ Python สำหรับคำขอร้องทั่วโลกโดยเหตุการณ์ CloudFront ในขณะนี้ เรียนรู้เพิ่มเติมได้ในเอกสารประกอบของเรา
Lambda@Edge เหมาะสำหรับกรณีใช้งานที่ไวต่อเวลาแฝง ที่ซึ่งผู้ชมปลายทางของคุณกระจายตำแหน่งที่ตั้งไปทั่วโลก ข้อมูลทั้งหมดที่คุณต้องใช้ในการตัดสินใจมีอยู่ใน CloudFront ที่ Edge ภายในฟังก์ชันและคำขอ นั่นหมายความว่า ตอนนี้กรณีใช้งานที่คุณต้องตัดสินใจวิธีการให้บริการเนื้อหาตามลักษณะของผู้ใช้ (เช่น ตำแหน่งที่ตั้ง อุปกรณ์ไคลเอ็นต์ เป็นต้น) จะสามารถดำเนินการและให้บริการใกล้กับผู้ใช้ของคุณได้โดยไม่ต้องส่งกลับไปที่เซิร์ฟเวอร์ส่วนกลาง
คุณสามารถเชื่อมโยงฟังก์ชัน Lambda ที่มีอยู่กับเหตุการณ์ CloudFront สำหรับการเรียกดำเนินการทั่วโลกหากฟังก์ชันตอบสนองข้อกำหนดและข้อจำกัดด้านบริการ Lambda@Edge อ่านเพิ่มเติมเกี่ยวกับการอัปเดตคุณสมบัติการทำงานของคุณได้ที่นี่
ความสามารถในการปรับขนาดและความพร้อมใช้งาน
เปิดทั้งหมด-
AWS Lambda ได้รับการออกแบบมาเพื่อใช้การจำลองแบบและความซ้ำซ้อนเพื่อให้มีความพร้อมใช้งานสูงสำหรับทั้งบริการและฟังก์ชัน Lambda ที่ดำเนินการ ไม่มีกรอบการบำรุงรักษาหรือการหยุดทำงานที่กำหนดไว้สำหรับทั้งสองระบบ
-
ใช่ เมื่อคุณอัปเดตฟังก์ชัน Lambda จะมีช่วงเวลาสั้น ๆ ซึ่งโดยทั่วไปจะน้อยกว่าหนึ่งนาทีเมื่อคำขอสามารถทำงานได้โดยใช้ทั้งฟังก์ชันเวอร์ชันเก่าหรือใหม่
ไม่ AWS Lambda ได้รับการออกแบบมาเพื่อเรียกใช้อินสแตนซ์ฟังก์ชันของคุณหลายรายการพร้อมกัน อย่างไรก็ตาม AWS Lambda มีขีดจำกัดความปลอดภัยเริ่มต้นสำหรับจำนวนการดำเนินการที่เกิดขึ้นพร้อมกันต่อบัญชีต่อรีเจี้ยน (โปรดดูข้อมูลเกี่ยวกับขีดจำกัดความปลอดภัยเริ่มต้นที่นี่) นอกจากนี้ คุณยังสามารถควบคุมการดำเนินการที่เกิดขึ้นพร้อมกันสูงสุดสำหรับฟังก์ชัน AWS Lambda แต่ละรายการได้ ซึ่งคุณสามารถใช้เพื่อสำรองชุดย่อยของขีดจำกัดในกระบวนการทำงานพร้อมกันของบัญชีสำหรับฟังก์ชันที่สำคัญ หรือกำหนดอัตราการรับส่งข้อมูลให้กับทรัพยากรดาวน์สตรีม
หากคุณต้องการส่งคําขอเพื่อเพิ่มขีดจํากัดการดําเนินการพร้อมกัน คุณสามารถใช้ Service Quotas เพื่อขอเพิ่มขีดจํากัด
เมื่อเกินขีดจำกัดการดำเนินการพร้อมกันสูงสุด ฟังก์ชัน AWS Lambda ที่ถูกเรียกดำเนินการแบบซิงโครนัสจะส่งคืนข้อผิดพลาดเกี่ยวกับการควบคุมปริมาณ (รหัสข้อผิดพลาด 429) ฟังก์ชัน Lambda ที่ถูกเรียกดำเนินการแบบอะซิงโครนัสสามารถดูดซับการรับส่งข้อมูลที่เหมาะสมได้ประมาณ 15-30 นาทีหลังจากที่เหตุการณ์ขาเข้าจะถูกปฏิเสธเนื่องจากมีการควบคุม ในกรณีที่ฟังก์ชัน Lambda ถูกเรียกใช้เพื่อตอบสนองต่อเหตุการณ์ Amazon S3 กิจกรรมที่ AWS Lambda ปฏิเสธอาจถูกเก็บรักษาและเรียกซ้ำโดย S3 เป็นเวลา 24 ชั่วโมง เหตุการณ์จาก Amazon Kinesis Streams และ Amazon DynamoDB Streams จะถูกเรียกซ้ำจนกว่าฟังก์ชัน Lambda จะสำเร็จหรือข้อมูลหมดอายุ Amazon Kinesis และ Amazon DynamoDB Streams จะเก็บข้อมูลเป็นเวลา 24 ชั่วโมง
ขีดจํากัดการดําเนินการพร้อมกันสูงสุดเริ่มต้นมีการใช้ที่ระดับบัญชี อย่างไรก็ตาม คุณยังสามารถกําหนดขีดจํากัดสำหรับแต่ละฟังก์ชันได้เช่นกัน (เยี่ยมชมที่นี่เพื่อดูข้อมูลเกี่ยวกับ Reserved Concurrency)
ฟังก์ชัน Lambda ที่เรียกดำเนินการพร้อมกันแต่ละฟังก์ชันสามารถปรับขนาดได้ในอัตราการดําเนินการพร้อมกันสูงสุด 1,000 รายการทุก ๆ 10 วินาที แม้ว่าอัตราการปรับขนาดของ Lambda จะเหมาะสําหรับกรณีการใช้งานส่วนใหญ่ แต่จะเหมาะอย่างยิ่งสําหรับผู้ที่มีปริมาณการใช้งานที่คาดการณ์ได้หรือคาดเดาไม่ได้ ตัวอย่างเช่น การประมวลผลข้อมูลที่ผูกกับ SLA จะต้องมีการปรับขนาดที่คาดการณ์ได้แต่รวดเร็วเพื่อตอบสนองความต้องการในการประมวลผล ในทํานองเดียวกัน การให้บริการบทความข่าวด่วน หรือการแฟลชเซลอาจเพิ่มระดับการเข้าชมที่คาดเดาไม่ได้ในช่วงเวลาสั้นๆ อัตราการปรับขนาดของ Lambda สามารถอํานวยความสะดวกให้กับกรณีการใช้งานดังกล่าวได้โดยไม่ต้องกําหนดค่าหรือเครื่องมือเพิ่มเติม นอกจากนี้ ขีดจํากัดการปรับขนาดพร้อมกันยังเป็นขีดจํากัดระดับฟังก์ชัน ซึ่งหมายความว่าแต่ละฟังก์ชันในบัญชีของคุณจะปรับขนาดโดยไม่ขึ้นกับฟังก์ชันอื่น ๆ
-
เมื่อเกิดข้อผิดพลาด ฟังก์ชัน Lambda ที่เรียกดำเนินการพร้อมกันจะตอบสนองโดยมีข้อยกเว้น ฟังก์ชัน Lambda ที่ถูกเรียกใช้แบบอะซิงโครนัสจะถูกเรียกใหม่อย่างน้อย 3 ครั้ง เหตุการณ์จาก Amazon Kinesis Streams และ Amazon DynamoDB Streams จะถูกเรียกซ้ำจนกว่าฟังก์ชัน Lambda จะสำเร็จหรือข้อมูลหมดอายุ Kinesis และ DynamoDB Streams จะเก็บข้อมูลไว้อย่างน้อย 24 ชั่วโมง
เมื่อเกินนโยบายการลองใหม่สำหรับการเรียกแบบอะซิงโครนัส คุณสามารถกำหนดค่า "คิวที่ทำไม่สำเร็จ" (DLQ) ที่จะวางเหตุการณ์ ในกรณีที่ไม่มี DLQ ที่กำหนดค่าไว้ที่เหตุการณ์อาจถูกปฏิเสธ เมื่อเกินนโยบายการลองใหม่สำหรับการเรียกดำเนินการตามสตรีม ข้อมูลจะหมดอายุและถูกปฏิเสธในที่สุด
-
คุณสามารถกำหนดค่าคิว Amazon SQS หรือหัวข้อ Amazon SNS เป็นคิวที่ทำไม่สำเร็จได้
การควบคุมความปลอดภัยและการเข้าถึง
เปิดทั้งหมดคุณให้สิทธิ์แก่ฟังก์ชัน Lambda ของคุณเพื่อเข้าถึงทรัพยากรอื่น ๆ โดยใช้บทบาทใน IAM AWS Lambda รับบทบาทในขณะที่ดำเนินการฟังก์ชัน Lambda ของคุณ เพื่อให้คุณสามารถควบคุมทรัพยากร AWS ที่จะใช้งานได้อย่างเต็มที่และปลอดภัย โปรดไปที่การตั้งค่า AWS Lambda เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับบทบาท
เมื่อคุณกำหนดค่าบัคเก็ต Amazon S3 เพื่อส่งข้อความไปยังฟังก์ชัน AWS Lambda กฎนโยบายทรัพยากรจะถูกสร้างขึ้นเพื่อให้สิทธิ์การเข้าถึง โปรดไปที่คู่มือนักพัฒนา Lambda เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับนโยบายทรัพยากรและการควบคุมการเข้าถึงสำหรับฟังก์ชัน Lambda
การควบคุมการเข้าถึงจะได้รับการจัดการผ่านบทบาทของฟังก์ชัน Lambda บทบาทที่คุณกำหนดให้กับฟังก์ชัน Lambda ของคุณจะกำหนดว่า AWS Lambda สามารถสำรวจทรัพยากรใดได้เองบ้าง โปรดไปที่คู่มือนักพัฒนา Lambda เพื่อเรียนรู้เพิ่มเติม
-
การควบคุมการเข้าถึงสามารถจัดการได้โดยบทบาทฟังก์ชัน Lambda หรือการตั้งค่านโยบายทรัพยากรในคิวเอง หากมีทั้งสองนโยบาย สิทธิ์ที่มีข้อจำกัดเข้มงวดที่สุดจากทั้งสองสิทธิ์จะมีผลบังคับใช้
คุณสามารถเปิดใช้งานฟังก์ชัน Lambda เพื่อเข้าถึงทรัพยากรใน VPC ของคุณได้โดยการระบุซับเน็ตและกลุ่มมาตรการรักษาความปลอดภัยให้เป็นส่วนหนึ่งในการกำหนดค่าฟังก์ชันของคุณ ฟังก์ชัน Lambda ที่กำหนดค่าให้เข้าถึงทรัพยากรใน VPC โดยเฉพาะจะไม่สามารถเข้าถึงอินเทอร์เน็ตได้เป็นค่าเริ่มต้น หากต้องการให้อินเทอร์เน็ตแก่ฟังก์ชันเหล่านี้ ให้ใช้อินเทอร์เน็ตเกตเวย์ ตามค่าเริ่มต้น ฟังก์ชัน Lambda จะสื่อสารกับทรัพยากรใน VPC แบบสแต็กคู่ผ่าน IPv4 คุณสามารถกำหนดค่าฟังก์ชันของคุณให้เข้าถึงทรัพยากรใน VPC แบบสแต็กคู่ผ่าน IPv6 ได้ หากต้องการรายละเอียดเพิ่มเติมเกี่ยวกับฟังก์ชัน Lambda ที่กำหนดค่าด้วย VPC โปรดดูที่การสร้างเครือข่ายส่วนตัว Lambda ด้วย VPC
การลงชื่อโค้ดสำหรับ AWS Lambda มอบการควบคุมความน่าเชื่อถือและความถูกต้องสมบูรณ์ ซึ่งช่วยให้คุณตรวจสอบยืนยันได้ว่ามีเฉพาะโค้ดที่ไม่ได้ปรับเปลี่ยนจากผู้พัฒนาที่ได้รับอนุมัติเท่านั้นที่จะปรับใช้ในฟังก์ชัน Lambda ของคุณ คุณสามารถใช้ AWS Signer ซึ่งเป็นบริการรับรองโค้ดที่มีการจัดการเต็มรูปแบบเพื่อลงชื่ออาร์ทิแฟกต์โค้ดแบบดิจิทัลและกำหนดค่าฟังก์ชัน Lambda ของคุณให้ตรวจสอบยืนยันลายเซ็นเมื่อมีการปรับใช้ ขณะนี้การลงชื่อโค้ดสำหรับ AWS Lambda มีให้บริการสำหรับฟังก์ชันที่รวมแพ็กเกจเป็นการเก็บถาวร ZIP เท่านั้น
คุณสามารถสร้างอาร์ทิแฟกต์โค้ดที่มีการลงนามแบบดิจิทัลได้โดยใช้โปรไฟล์การลงนามผ่านทาง AWS Signer Console, Signer API, SAM CLI หรือ AWS CLI หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่เอกสารประกอบสำหรับ AWS Signer
-
คุณสามารถเปิดใช้การรับรองโค้ดโดยสร้างการกำหนดค่าการรับรองโค้ดผ่านทางคอนโซลการจัดการของ AWS, Lambda API, AWS CLI, AWS CloudFormation และ AWS SAM การกำหนดค่าการลงชื่อโค้ดช่วยคุณระบุโปรไฟล์การลงชื่อที่ได้รับอนุมัติและกำหนดว่าต้องการเตือนหรือปฏิเสธการติดตั้งใช้จริงหากตรวจสอบลายเซ็นไม่สำเร็จหรือไม่ สามารถแนบใช้การกำหนดค่าการลงชื่อโค้ดกับแต่ละฟังก์ชันของ Lambda ได้เพื่อเปิดใช้คุณสมบัติการลงชื่อโค้ด จากนั้นฟังก์ชันดังกล่าวก็จะเริ่มตรวจสอบยืนยันลายเซ็นเมื่อมีการติดตั้งใช้จริง
AWS Lambda จะดำเนินการตรวจสอบลายเซ็นดังต่อไปนี้เมื่อมีการปรับใช้
• ลายเซ็นไม่สมบูรณ์ - เกิดขึ้นในกรณีที่ตัวโค้ดถูกดัดแปลงตั้งแต่เมื่อลงชื่อ
• ลายเซ็นไม่ตรง - เกิดขึ้นในกรณีที่ตัวโค้ดถูกเซ็นโดยใช้โปรไฟล์การลงชื่อที่ไม่ได้รับการอนุมัติ
• ลายเซ็นหมดอายุ - เกิดขึ้นในกรณีที่ลายเซ็นผ่านพ้นวันที่หมดอายุที่กำหนดไว้แล้ว
• ลายเซ็นถูกเพิกถอน - เกิดขึ้นในกรณีที่เจ้าของโปรไฟล์การลงชื่อเพิกถอนงานการลงชื่อ
หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่เอกสารประกอบสำหรับ AWS Lambda
-
ได้ คุณสามารถเปิดใช้การรับรองโค้ดสำหรับฟังก์ชันที่มีอยู่ได้โดยแนบติดการกำหนดค่าการรับรองโค้ดเข้ากับฟังก์ชัน สามารถทำได้โดยใช้คอนโซลของ AWS Lambda, Lambda API, AWS CLI, AWS CloudFormation และ AWS SAM
ไม่มีค่าใช้จ่ายเพิ่มเติมเมื่อใช้การรับรองโค้ดสำหรับ AWS Lambda คุณเพียงชำระเงินในราคามาตรฐานสำหรับการใช้ AWS Lambda ก็พอ หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่ค่าบริการ
ความสามารถในการตรวจติดตามขั้นสูง
เปิดทั้งหมดเพื่อให้คุณได้ประสบการณ์การบันทึกที่ง่ายดายและมีประสิทธิภาพยิ่งขึ้นตั้งแต่เริ่มใช้ AWS Lambda นำเสนอการควบคุมการบันทึกขั้นสูง เช่น ความสามารถในการบันทึกข้อมูลบันทึกฟังก์ชัน Lambda ในรูปแบบโครงสร้าง JSON แบบเนทีฟ ควบคุมการกรองระดับข้อมูลบันทึกของข้อมูลบันทึกฟังก์ชัน Lambda โดยไม่ต้องทําการเปลี่ยนแปลงโค้ดใด ๆ และปรับแต่งกลุ่มข้อมูลบันทึกของ Amazon CloudWatch ที่ Lambda ส่งข้อมูลบันทึกไป
คุณสามารถบันทึกข้อมูลบันทึกฟังก์ชัน Lambda รูปแบบในโครงสร้าง JSON โดยไม่ต้องใช้ไลบรารีการบันทึกของคุณเอง ข้อมูลบันทึกในโครงสร้าง JSON ช่วยให้ค้นหา กรอง และวิเคราะห์รายการข้อมูลบันทึกจํานวนมากได้ง่ายยิ่งขึ้น คุณสามารถควบคุมการกรองระดับข้อมูลบันทึกของข้อมูลบันทึกฟังก์ชัน Lambda ได้โดยไม่ต้องทําการเปลี่ยนแปลงโค้ดใดๆ ซึ่งช่วยให้คุณสามารถเลือกระดับความละเอียดในการบันทึกที่จําเป็นสําหรับฟังก์ชัน Lambda ได้ โดยไม่ต้องค้นในข้อมูลบันทึกจํานวนมากเมื่อแก้จุดบกพร่องและแก้ไขข้อผิดพลาด คุณยังสามารถตั้งค่าว่าจะส่งข้อมูลบันทึกไปยังกลุ่มข้อมูลบันทึก Amazon CloudWatch ของ Lambda ใด ทําให้ง่ายต่อการรวมข้อมูลบันทึกจากหลายฟังก์ชันภายในแอปพลิเคชันได้ในที่เดียว จากนั้นคุณสามารถใช้นโยบายความปลอดภัย การกํากับดูแล และการเก็บรักษากับข้อมูลบันทึกที่ระดับแอปพลิเคชัน แทนการแยกทีละรายการกับทุกฟังก์ชัน
คุณสามารถระบุการควบคุมการบันทึกขั้นสูงสําหรับฟังก์ชัน Lambda ของคุณได้โดยใช้ AWS Lambda API, คอนโซล AWS Lambda, AWS CLI, โมเดลแอปพลิเคชันแบบไม่ต้องใช้เซิร์ฟเวอร์ (SAM) ของ AWS และ AWS CloudFormation หากต้องการเรียนรู้เพิ่มเติม เยี่ยมชมบล็อกโพสต์เปิดตัวเพื่อดูการควบคุมการบันทึกขั้นสูงหรือคู่มือนักพัฒนา Lambda
ได้ คุณสามารถใช้ไลบรารีข้อมูลบันทึกของคุณเองเพื่อสร้างข้อมูลบันทึก Lambda ในรูปแบบโครงสร้าง JSON ได้ เพื่อให้แน่ใจว่าไลบรารีข้อมูลบันทึกของคุณทํางานได้อย่างราบรื่นด้วยความสามารถเนทีฟในการบันทึกในโครงสร้าง JSON ของ Lambda นั้น Lambda จะไม่เข้ารหัสสองครั้งกับข้อมูลบันทึกใดๆ ที่สร้างโดยฟังก์ชันของคุณที่เข้ารหัส JSON อยู่แล้ว คุณยังสามารถใช้ไลบรารี Powertools สำหรับ AWS Lambda เพื่อบันทึกข้อมูลบันทึก Lambda ในรูปแบบโครงสร้าง JSON ได้อีกด้วย
ไม่มีค่าใช้จ่ายเพิ่มเติมในการใช้การควบคุมการบันทึกขั้นสูงบน Lambda คุณจะถูกเรียกเก็บค่าบริการสําหรับการนําเข้าและเก็บข้อมูลบันทึก Lambda ของคุณโดย Amazon CloudWatch Logs ต่อไป ดูหน้าค่าบริการของ CloudWatch สําหรับรายละเอียดค่าบริการข้อมูลบันทึก
สัญญาณแอปพลิเคชัน CloudWatch เป็นโซลูชัน Application Performance Monitoring (APM) ซึ่งช่วยให้นักพัฒนาและผู้ปฏิบัติงานสามารถตรวจติดตามสถานะและประสิทธิภาพของแอปพลิเคชันแบบไม่ต้องใช้เซิร์ฟเวอร์ที่สร้างขึ้นด้วย Lambda ได้อย่างง่ายดาย สัญญาณแอปพลิเคชันมีแดชบอร์ดมาตรฐานที่สร้างไว้ล่วงหน้าสำหรับตัววัดแอปพลิเคชันที่สำคัญ รายการติดตามที่สัมพันธ์กัน และการโต้ตอบระหว่างฟังก์ชัน Lambda และการพึ่งพาของฟังก์ชันโดยไม่ต้องใช้เครื่องมือด้วยตนเองหรือการเปลี่ยนแปลงโค้ดจากนักพัฒนา
CloudWatch Logs Live Tail เป็นความสามารถในการวิเคราะห์และการสตรีมข้อมูลบันทึกเชิงโต้ตอบ ช่วยให้คุณสามารถดูข้อมูลบันทึกได้แบบเรียลไทม์ ซึ่งช่วยให้พัฒนาและแก้ไขปัญหาของฟังก์ชัน Lambda ได้ง่ายขึ้น ดังนั้น จึงทำให้นักพัฒนาทดสอบและตรวจสอบการเปลี่ยนแปลงโค้ดหรือการกำหนดค่าแบบเรียลไทม์ได้รวดเร็ว ซึ่งช่วยให้การเขียน ทดสอบ และนำไปปรับใช้ (เรียกอีกอย่างว่า “inner dev loop”) ดำเนินไปอย่างรวดเร็วยิ่งขึ้นเมื่อสร้างแอปพลิเคชันด้วย Lambda นอกจากนี้ ประสบการณ์การใช้งาน Live Tail ยังช่วยให้ทีมผู้ปฏิบัติงานและทีม DevOps ตรวจจับและแก้ไขความล้มเหลวหรือข้อผิดพลาดที่สำคัญในโค้ดฟังก์ชัน Lambda อย่างมีประสิทธิภาพมากขึ้น พร้อมช่วยลดเวลาเฉลี่ยในการกู้คืน (MTTR) เมื่อทำการแก้ไขข้อผิดพลาดของฟังก์ชัน Lambda
ฟังก์ชันที่ทนทานของ AWS Lambda
เปิดทั้งหมดใช้ฟังก์ชันที่ทนทานของ Lambda เมื่อคุณต้องการสร้างตรรกะภายในโมเดลการเขียนโปรแกรมที่คุ้นเคยของ Lambda ด้วยการทดสอบในเครื่อง การผสานรวม IDE และภาษาการเขียนโปรแกรมที่คุณต้องการ ใช้ AWS Step Functions เมื่อคุณต้องการการออกแบบเวิร์กโฟลว์ภาพ การมองเห็นข้ามทีม การผสานรวมบริการในตัวมากกว่า 220 รายการ หรือโครงสร้างพื้นฐานที่ไม่ต้องมีการบำรุงรักษา แอปพลิเคชันจำนวนมากได้รับประโยชน์จากการใช้ทั้งสองบริการด้วยกัน
ฟังก์ชันที่ทนทานของ AWS Lambda ปัจจุบันรองรับ JavaScript, TypeScript, Python และ Java เรียนรู้เพิ่มเติมเกี่ยวกับรันไทม์ที่รองรับ
สำหรับความพร้อมใช้งานล่าสุด โปรดดูที่หน้าความสามารถของ AWS ในแต่ละรีเจี้ยน
ใช่ แม้ว่าการหมดเวลาการเรียกดำเนินการแต่ละครั้งจะคงอยู่ 15 นาที แต่ฟังก์ชันที่ทนทานของ Lambda สามารถระงับและกลับมาทำงานได้ตลอดการเรียกดำเนินการหลายครั้งโดยใช้ความสามารถในการรอ เช่น ตัวจับเวลา การเรียกกลับ และเงื่อนไขการสำรวจ เมื่อคุณเรียกดำเนินการฟังก์ชันที่ทนทานแบบอะซิงโครนัส สามารถขยายการหมดเวลาดำเนินการที่ทนทานได้ถึงหนึ่งปี ทำให้สามารถใช้กรณีการใช้งานเช่นเวิร์กโฟลว์การอนุมัติจากมนุษย์ การแจ้งเตือนตามกำหนดเวลา และไปป์ไลน์การประมวลผลหลายวัน สำหรับฟังก์ชันตามความต้องการ ไม่มีค่าใช้จ่ายในการประมวลผลระหว่างการระงับชั่วคราว
การหมดเวลาการดำเนินการ (สูงสุด 1 ปี) จะควบคุมระยะเวลาในการดำเนินการ ระยะเวลาการเก็บรักษา (สูงสุด 90 วัน) จะควบคุมระยะเวลาในการเก็บรักษาประวัติและข้อมูลจุดตรวจสอบหลังจากการดำเนินการถึงสถานะเทอร์มินัล การเก็บรักษาจะไม่ส่งผลต่อการดำเนินการที่กำลังทำอยู่ ดูการกำหนดค่าฟังก์ชันที่ทนทาน
ไม่ สำหรับฟังก์ชันตามความต้องการ เมื่อใช้ความสามารถในการรอของ SDK การดำเนินการที่ทนทาน จะไม่มีค่าใช้จ่ายในการประมวลผลระหว่างการระงับการทำงาน สำหรับข้อมูลเพิ่มเติม โปรดดูหน้าราคาและคู่มือนักพัฒนา
คุณสามารถรวมแต่ละหน่วยของงานในหนึ่งขั้นตอนด้วยการลองใหม่อัตโนมัติ หากขั้นตอนล้มเหลวหลังจากลองอีกครั้ง รหัสตัวจัดการของคุณสามารถจับข้อผิดพลาดและเรียกใช้ขั้นตอนการชดเชย เช่น การคืนเงินหรือปลดการจอง เนื่องจากขั้นตอนที่เสร็จสมบูรณ์แต่ละขั้นตอนจะถูกตรวจสอบตามจุดตรวจรวมถึงการชดเชย งานที่เสร็จสมบูรณ์แล้วจะไม่ถูกทำซ้ำเมื่อลองใหม่ รูปแบบนี้ช่วยให้คุณสร้างกระบวนการหลายขั้นตอนที่เชื่อถือได้ เช่น การดำเนินการตามคำสั่งซื้อหรือเวิร์กโฟลว์การชำระเงิน โดยไม่ต้องเขียนการลองซ้ำแบบกำหนดเองและตรรกะการติดตามสถานะ
สถานะการดำเนินการจะถูกเก็บไว้ในพื้นที่เก็บสถานะภายในที่มีการจัดการเต็มรูปแบบ การดำเนินการตามจุดตรวจสอบแต่ละครั้ง เช่น ขั้นตอนหรือการเรียกคืน สามารถจัดเก็บข้อมูลได้สูงสุด 256 KB ขีดจำกัดนี้ใช้กับข้อมูลที่ส่งคืนจากการดำเนินการ ข้อมูลที่ดำเนินการภายในการดำเนินการหนึ่ง เช่นการอ่านและเขียนอ็อบเจกต์ S3 ขนาดใหญ่จะไม่นับรวมกับขีดจำกัดนี้ หากการดำเนินการจะต้องส่งคืนผลลัพธ์ขนาดใหญ่ คุณสามารถกำหนดค่าซีเรียลไลซ์ที่กำหนดเองใน SDK เพื่อปลดภาระงานเพย์โหลดไปยัง Amazon S3 หรือ Amazon DynamoDB และส่งเพียงการอ้างอิงผ่านจุดตรวจสอบเท่านั้น
ฟังก์ชันที่ทนทานของ Lambda ใช้พูลพร้อมกันระดับบัญชีเดียวกันกับฟังก์ชัน Lambda มาตรฐาน ช่วงเวลาสภาวะพร้อมกันจะถูกปล่อยออกมาในระหว่างการรอ ดังนั้นการดำเนินการหลายพันรายการสามารถรอได้โดยไม่ต้องใช้เวลาพร้อมกัน เรียนรู้เพิ่มเติมเกี่ยวกับ AWS Lambda Quotas
คุณสามารถทดสอบฟังก์ชันที่ทนทานภายในเครื่องโดยไม่ต้องใช้ข้อมูลประจำตัว AWS โดยใช้ SDK การดำเนินการที่ทนทานสำหรับภาษาการเขียนโปรแกรมที่รองรับของคุณ AWS SAM CLI ยังรองรับการเรียกดำเนินการในเครื่อง การเรียกกลับ และการจัดการดำเนินการที่ทนทาน ทำให้สามารถพัฒนาและแก้ไขข้อบกพร่องได้อย่างตรงไปตรงมาก่อนที่จะปรับใช้ เรียนรู้เพิ่มเติมเกี่ยวกับการทดสอบฟังก์ชันที่ทนทาน