ข้อมูลทั่วไป

คำถาม: AWS Lambda คืออะไร

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

คำถาม: การประมวลผลแบบไร้เซิร์ฟเวอร์คืออะไร

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

คำถาม: เหตุการณ์อะไรที่สามารถเรียกใช้ฟังก์ชัน AWS Lambda ได้

โปรดดูรายชื่อแหล่งเหตุการณ์ทั้งหมดได้จากเอกสารประกอบของเรา

คำถาม: ฉันควรใช้ AWS Lambda กับ Amazon EC2 เมื่อใด

Amazon Web Services เสนอบริการประมวลผลเพื่อตอบสนองความต้องการหลากหลายรูปแบบ

Amazon EC2 มอบความยืดหยุ่นโดยมีอินสแตนซ์หลากหลายประเภทและตัวเลือกในการปรับแต่งระบบปฏิบัติการ ระบบเครือข่ายและการตั้งค่าความปลอดภัย รวมถึงสแตกซอฟต์แวร์ทั้งหมด ซึ่งช่วยให้คุณสามารถย้ายแอปพลิเคชันที่มีอยู่ไปยังระบบคลาวด์ได้อย่างง่ายดาย ด้วย Amazon EC2 คุณมีหน้าที่รับผิดชอบในการจัดหากำลังการผลิต ติดตามตรวจสอบสุขภาพและประสิทธิภาพของฟลีต และออกแบบเพื่อรองรับความผิดพลาดและความสามารถในการปรับขนาด AWS Elastic Beanstalk นำเสนอบริการที่ใช้งานง่ายสำหรับการปรับใช้และการปรับขนาดเว็บแอปพลิเคชันซึ่งคุณยังคงความเป็นเจ้าของไว้ และควบคุม EC2 instance พื้นฐานได้อย่างเต็มรูปแบบ Amazon EC2 Container Service คือบริการด้านการจัดการที่ปรับขนาดได้ ซึ่งรองรับคอนเทนเนอร์ Docker และช่วยให้คุณสามารถเรียกใช้แอปพลิเคชันที่เผยแพร่ในคลัสเตอร์ที่มีการจัดการของ Amazon EC2 instance ได้ง่ายๆ

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

คำถาม: โค้ดประเภทใดที่สามารถเรียกใช้งาน AWS Lambda ได้

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

คำถาม: AWS Lambda รองรับภาษาอะไรบ้าง

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

คำถาม: ฉันสามารถเข้าถึงโครงสร้างพื้นฐานที่ AWS Lambda ทำงานได้หรือไม่

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

คำถาม: AWS Lambda แยกโค้ดของฉันอย่างไร

ฟังก์ชัน AWS Lambda แต่ละตัวทำงานในสภาพแวดล้อมที่เป็นเอกเทศโดยใช้ทรัพยากรและมุมมองระบบไฟล์ของตัวเอง AWS Lambda ใช้เทคนิคเดียวกับ Amazon EC2 เพื่อให้การรักษาความปลอดภัยและการแยกระดับโครงสร้างพื้นฐานและการปฏิบัติงาน

คำถาม: AWS Lambda ทำให้โค้ดของฉันปลอดภัยอย่างไร

AWS Lambda จัดเก็บโค้ดใน Amazon S3 และเข้ารหัสขณะที่ไม่ได้ใช้งาน AWS Lambda ตรวจสอบความถูกต้องเพิ่มเติมในขณะที่โค้ดของคุณใช้งานอยู่

คำถาม: ภูมิภาค AWS ใดที่พร้อมใช้งานสำหรับ AWS Lambda

โปรดดูที่ตารางภูมิภาคโครงสร้างพื้นฐานโดยรวมของ AWS

ฟังก์ชัน AWS Lambda

คำถาม: ฟังก์ชัน AWS Lambda คืออะไร

โค้ดที่คุณเรียกใช้บน AWS Lambda จะถูกอัปโหลดเป็น “ฟังก์ชัน Lambda” แต่ละฟังก์ชันมีข้อมูลการกำหนดค่าที่เกี่ยวข้อง เช่น ชื่อ คำอธิบาย จุดเข้า และความต้องการทรัพยากร โค้ดต้องเขียนในรูปแบบ "ไม่มีสถานะ" กล่าวคือ จะถือว่าไม่มีความเกี่ยวข้องกับโครงสร้างพื้นฐานการประมวลผลที่สำคัญ การเข้าถึงระบบไฟล์ในเครื่อง กระบวนการลูก และสิ่งประดิษฐ์ที่คล้ายคลึงกันอาจไม่สามารถเข้าถึงเกินอายุการใช้งานของคำขอได้ และการเขียนข้อมูลอย่างต่อเนื่องใดๆ ควรเก็บไว้ใน Amazon S3, Amazon DynamoDB, Amazon EFS หรือบริการจัดเก็บข้อมูลทางอินเทอร์เน็ตอื่น ฟังก์ชัน Lambda สามารถรวมไลบรารีที่มีอยู่ รวมถึงไลบรารีดั้งเดิม

คำถาม: AWS Lambda จะใช้อินสแตนซ์ฟังก์ชันใหม่อีกครั้งหรือไม่

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

คำถาม: จะทำอย่างไรถ้าฉันต้องการพื้นที่ว่างบนดิสก์สำหรับฟังก์ชัน AWS Lambda

ฟังก์ชัน Lambda แต่ละตัวจะได้รับเนื้อที่ดิสก์ไม่ถาวรไม่เกิน 512MB ในไดเรกทอรี /tmp ของตัวเอง

คำถาม: ทำไมฟังก์ชัน AWS Lambda ต้องเป็นแบบไม่มีสถานะ

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

คำถาม: ฉันสามารถใช้เธรดและกระบวนการในโค้ดฟังก์ชัน AWS Lambda ได้หรือไม่

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

คำถาม: มีข้อจำกัดใดบ้างในการใช้งานโค้ดฟังก์ชัน AWS Lambda

Lambda พยายามที่จะกำหนดข้อจำกัดให้น้อยที่สุดเท่าที่จะเป็นไปได้ในภาษาปกติและกิจกรรมของระบบปฏิบัติการ แต่มีกิจกรรมบางอย่างที่ปิดใช้งานอยู่ นั่นคือการเชื่อมต่อเครือข่ายขาเข้าจะถูกบล็อกโดย AWS Lambda และสำหรับการเชื่อมต่อขาออก มีเพียงซ็อกเก็ต TCP/IP และ UDP/IP เท่านั้นที่ได้รับการรองรับ และการเรียกระบบ (แก้ไขจุดบกพร่อง) ptrace จะถูกบล็อก การรับส่งข้อมูลพอร์ต TCP 25 จะถูกบล็อกเช่นกันเพื่อเป็นมาตรการป้องกันสแปม

คำถาม: ฉันจะสร้างฟังก์ชัน AWS Lambda โดยใช้ Console ของ Lambda ได้อย่างไร

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

นอกจากนี้คุณยังสามารถบีบอัดโค้ด (และไลบรารีที่เกี่ยวข้อง) เป็นไฟล์ ZIP และอัปโหลดโดยใช้ Console ของ AWS Lambda จากสภาพแวดล้อมท้องถิ่นของคุณ หรือระบุตำแหน่ง Amazon S3 ที่มีไฟล์ ZIP อยู่ ไฟล์อัปโหลดต้องมีขนาดไม่เกิน 50MB (แบบบีบอัด) คุณสามารถใช้ปลั๊กอิน AWS Eclipse เพื่อเขียนและปรับใช้ฟังก์ชัน Lambda ใน Java ได้ คุณสามารถใช้ปลั๊กอิน Virtual Studio เพื่อเขียนและปรับใช้ฟังก์ชัน Lambda ใน C# และ Node.js ได้

คำถาม: ฉันจะสร้างฟังก์ชัน AWS Lambda โดยใช้ Lambda CLI ได้อย่างไร

คุณสามารถบีบอัดโค้ด (และไลบรารีที่เกี่ยวข้อง) เป็นไฟล์ ZIP และอัปโหลดโดยใช้ AWS CLI จากสภาพแวดล้อมท้องถิ่นของคุณ หรือระบุตำแหน่ง Amazon S3 ที่มีไฟล์ ZIP อยู่ ไฟล์อัปโหลดต้องมีขนาดไม่เกิน 50MB (แบบบีบอัด) ไปที่คู่มือเริ่มต้นใช้งาน Lambda เพื่อเริ่มต้นใช้งาน

คำถาม: AWS Lambda รองรับตัวแปรทางสภาพแวดล้อมหรือไม่

รองรับ คุณสามารถสร้างและแก้ไขตัวแปรทางสภาพแวดล้อมได้จาก AWS Lambda Console, CLI หรือ SDK หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับตัวแปรทางสภาพแวดล้อม โปรดดูเอกสารประกอบ

คำถาม: ฉันสามารถจัดเก็บข้อมูลที่สำคัญในตัวแปรทางสภาพแวดล้อมได้หรือไม่

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

คำถาม: ฉันสามารถจัดการฟังก์ชัน AWS Lambda ได้อย่างไร

คุณสามารถแสดงรายการ ลบ อัปเดต และตรวจสอบฟังก์ชัน Lambda โดยใช้แดชบอร์ดใน Console ของ AWS Lambda นอกจากนี้คุณยังสามารถใช้ AWS CLI และ AWS SDK เพื่อจัดการฟังก์ชัน Lambda ของคุณได้อีกด้วย โปรดไปที่คู่มือนักพัฒนา Lambda เพื่อเรียนรู้เพิ่มเติม

ถาม: ฉันสามารถแบ่งปันโค้ดข้ามฟังก์ชันได้หรือไม่

ได้ คุณสามารถจัดแพคเกจโค้ด (เฟรมเวิร์ก, SDK, ไลบรารี และอีกมากมาย) เช่น Lambda Layer และจัดการแล้วแบ่งปันโค้ดกับหลายฟังก์ชันได้อย่างง่ายดาย

คำถาม: ฉันจะตรวจสอบฟังก์ชัน AWS Lambda ได้อย่างไร

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

ไปที่ตัววัดการแก้ปัญหาของ CloudWatch เพื่อเรียนรู้เพิ่มเติม ค่ามาตรฐานสำหรับ AWS Lambda จะนำมาใช้กับตัววัดในตัวของ Lambda

คำถาม: ฉันจะแก้ไขปัญหาข้อผิดพลาดในฟังก์ชัน AWS Lambda ได้อย่างไร

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

คำถาม: ฉันจะปรับฟังก์ชัน AWS Lambda ได้อย่างไร

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

คคำถาม: ทรัพยากรการประมวลผลจะถูกกำหนดให้กับฟังก์ชัน AWS Lambda อย่างไร

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

คุณสามารถตั้งค่าหน่วยความจำของคุณได้ตั้งแต่ 128 MB ไปจนถึง 10,240 MB

คำถาม: เมื่อใดที่ฉันควรใช้ฟังก์ชัน AWS Lambda ที่มีหน่วยความจำมากกว่า 3008 MB

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

คำถาม: ฟังก์ชัน AWS Lambda ใช้เวลาดำเนินการเท่าใด

ฟังก์ชัน AWS Lambda สามารถกำหนดค่าให้ทำงานได้สูงสุดถึง 15 นาทีต่อการดำเนินการ คุณสามารถตั้งค่าการหมดเวลาเป็นค่าใดก็ได้ระหว่าง 1 วินาทีและ 15 นาที

คำถาม: ฉันจะถูกเรียกเก็บเงินสำหรับการใช้งานฟังก์ชัน AWS Lambda อย่างไร

AWS Lambda มีค่าใช้จ่ายตามจำนวนครั้งที่ใช้งาน โปรดดูรายละเอียดในหน้าราคา AWS Lambda

คำถาม: ฉันสามารถประหยัดค่าใช้จ่ายใน AWS Lambda ด้วย Compute Savings Plans ได้หรือไม่

ได้ นอกจากจะประหยัดค่าใช้จ่ายใน Amazon EC2 และ AWS Fargate แล้ว คุณยังสามารถใช้ Compute Savings Plans เพื่อประหยัดค่าใช้จ่ายใน AWS Lambda ได้เช่นกัน Compute Savings Plans มีส่วนลดสูงสุดถึง 17% สำหรับระยะเวลา กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน และระยะเวลา (กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน) Compute Savings Plans จะไม่มีส่วนลดสำหรับคำขอในใบเรียกเก็บเงิน Lambda ของคุณ แต่คุณสามารถนำสัญญาการใช้งาน Compute Savings Plans มาใช้กับคำขอได้ในอัตราปกติ

คำถาม: AWS Lambda รองรับการสร้างเวอร์ชันใหม่หรือไม่

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

คำถาม: ฟังก์ชัน AWS Lambda ของฉันจะพร้อมเรียกใช้งานได้เมื่อใดหลังจากอัปโหลดโค้ดแล้ว

เวลาในการปรับใช้อาจแตกต่างกันไปตามขนาดโค้ดของคุณ แต่ฟังก์ชัน AWS Lambda โดยทั่วไปจะพร้อมใช้งานภายในไม่กี่วินาทีหลังจากอัปโหลด

คำถาม: ฉันสามารถใช้เวอร์ชันไลบรารีของตัวเองที่รองรับได้หรือไม่

ได้ คุณสามารถรวมสำเนาไลบรารีของคุณเอง (รวมถึง AWS SDK) เพื่อใช้เวอร์ชันอื่นนอกเหนือจากเวอร์ชันตามค่าเริ่มต้นของ AWS Lambda ได้

ใช้ AWS Lambda เพื่อประมวลผลเหตุการณ์ AWS

คำถาม: แหล่งเหตุการณ์คืออะไร

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

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

คำถาม: แหล่งเหตุการณ์ใดที่สามารถใช้กับ AWS Lambda ได้

โปรดดูรายชื่อแหล่งเหตุการณ์ทั้งหมดได้จากเอกสารประกอบของเรา

คำถาม: เหตุการณ์จะแสดงผลใน AWS Lambda อย่างไร

เหตุการณ์จะถูกส่งผ่านไปยังฟังก์ชัน Lambda เป็นพารามิเตอร์อินพุตเหตุการณ์ สำหรับแหล่งเหตุการณ์ที่ซึ่งเหตุการณ์มาถึงเป็นชุด เช่น Amazon SQS, Amazon Kinesis และ Amazon DynamoDB Streams พารามิเตอร์เหตุการณ์สามารถมีเหตุการณ์หลายรายการในการเรียกใช้หนึ่งครั้ง ทั้งนี้ขึ้นอยู่กับขนาดชุดที่คุณขอ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการแจ้งเตือนเหตุการณ์ Amazon S3 โปรดไปที่การกำหนดค่าการแจ้งเตือนสำหรับเหตุการณ์ Amazon S3 หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Amazon DynamoDB Streams โปรดไปที่คู่มือนักพัฒนา DynamoDB Stream หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเรียกใช้ฟังก์ชัน Lambda โดยใช้ Amazon SNS โปรดไปที่คู่มือนักพัฒนา Amazon SNS สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเหตุการณ์ Amazon Cognito โปรดไปที่ Amazon Cognito สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบันทึก AWS CloudTrail และการตรวจสอบการเรียกใช้งาน API ในบริการของ AWS โปรดดูที่ AWS CloudTrail

คำถาม: ฉันจะทำให้ฟังก์ชัน AWS Lambda ตอบสนองต่อการเปลี่ยนแปลงในบัคเก็ต Amazon S3 ได้อย่างไร

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

คำถาม: ฉันจะทำให้ฟังก์ชัน AWS Lambda ตอบสนองต่อการอัปเดตในตาราง Amazon DynamoDB ได้อย่างไร

คุณสามารถเรียกใช้ฟังก์ชัน Lambda เมื่อมีการอัปเดตตาราง DynamoDB ได้โดยการสมัครฟังก์ชัน Lambda กับ DynamoDB Stream ที่เกี่ยวข้องกับตาราง คุณสามารถเชื่อมโยง DynamoDB Stream กับฟังก์ชัน Lambda ได้โดยใช้ Amazon DynamoDB Console, AWS Lambda Console หรือ registerEventSource API ของ Lambda

คำถาม: ฉันจะใช้ฟังก์ชัน AWS Lambda เพื่อประมวลผลบันทึกในสตรีม Amazon Kinesis ได้อย่างไร

จาก Console ของ AWS Lambda คุณสามารถเลือกฟังก์ชัน Lambda และเชื่อมโยงกับสตรีม Amazon Kinesis ที่เป็นของบัญชีเดียวกันได้ ฟังก์ชันการทำงานแบบเดียวกันนี้ยังสามารถใช้ได้ผ่าน AWS SDK และ CLI

คำถาม: AWS Lambda ประมวลผลข้อมูลจาก Amazon Kinesis Streams และสตรีม Amazon DynamoDB ได้อย่างไร

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

คำถาม: ฉันควรเลือกอะไรระหว่าง AWS Lambda กับ Amazon Kinesis Data Analytics เพื่อจุดประสงค์ด้านการวิเคราะห์ของฉัน

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

  AWS Lambda Amazon KDA
ระยะเวลาที่ติดกัน ใช้ได้ ใช้ได้
ระยะเวลาการเอนเอียง ไม่ได้ ใช้ได้
ระยะเวลาการเปลี่ยนแปลง ไม่ได้ ใช้ได้
ระยะเวลาเซสชัน ไม่ได้ ใช้ได้
การเพิ่มคุณค่าของข้อมูล ไม่ได้ ใช้ได้
อินพุตร่วมและตารางข้อมูลอ้างอิง ไม่ได้ ใช้ได้
สตรีมอินพุตแบบแยก ไม่ได้ ใช้ได้
การประมวลผลเพียงครั้งเดียว ไม่ได้ ใช้ได้
ระยะเวลาสูงสุด 15 นาที ไม่จำกัด
ขอบเขตการรวม การแยก/ส่วน สตรีม
ความหมายของเวลา เวลาของเหตุการณ์ เวลาของเหตุการณ์ เวลาในการประมวลผล

คำถาม: ฉันจะใช้ฟังก์ชัน AWS Lambda เพื่อตอบสนองต่อการแจ้งเตือนที่ส่งโดย Amazon Simple Notification Service (SNS) ได้อย่างไร

จาก Console ของ AWS Lambda คุณสามารถเลือกฟังก์ชัน Lambda และเชื่อมโยงกับหัวข้อ Amazon SNS ฟังก์ชันการทำงานแบบเดียวกันนี้ยังสามารถใช้ได้ผ่าน AWS SDK และ CLI

คำถาม: ฉันจะใช้ฟังก์ชัน AWS Lambda เพื่อตอบสนองต่ออีเมลที่ส่งโดย Amazon Simple Email Service (SES) ได้อย่างไร

จาก Console ของ Amazon SES คุณสามารถตั้งค่ากฎการรับเพื่อให้ Amazon SES ส่งข้อความของคุณไปยังฟังก์ชัน AWS Lambda ได้ ฟังก์ชันการทำงานเดียวกันนี้สามารถใช้งานได้ผ่าน AWS SDK และ CLI

คำถาม: ฉันจะใช้ฟังก์ชัน AWS Lambda เพื่อตอบสนองต่อการแจ้งเตือน Amazon CloudWatch ได้อย่างไร

อันดับแรก ให้กำหนดค่าการแจ้งเตือนเพื่อส่งการแจ้งเตือน Amazon SNS จากนั้นจาก Console ของ AWS Lambda เลือกฟังก์ชัน Lambda และเชื่อมโยงกับหัวข้อ Amazon SNS นั้น ดูคู่มือนักพัฒนา Amazon CloudWatch สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าการแจ้งเตือน Amazon CloudWatch

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

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

คำถาม: แอปพลิเคชันของฉันสามารถเรียกใช้ฟังก์ชัน AWS Lambda โดยตรงได้อย่างไร

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

คำถาม: การเรียกใช้ฟังก์ชัน AWS Lambda เพื่อตอบสนองต่อเหตุการณ์มีเวลาแฝงเท่าใด

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

คำถาม: ฉันจะสร้างแบ็คเอนด์มือถือโดยใช้ AWS Lambda ได้อย่างไร

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

คำถาม: ฉันจะเรียกฟังก์ชัน AWS Lambda ผ่าน HTTPS ได้อย่างไร

คุณสามารถเรียกใช้ฟังก์ชัน Lambda ผ่าน HTTPS ได้โดยการกำหนด RESTful API เองโดยใช้ Amazon API Gateway วิธีนี้จะช่วยมอบตำแหน่งข้อมูลสำหรับฟังก์ชันของคุณซึ่งสามารถตอบสนองต่อการเรียกใช้งาน REST ได้ เช่น GET, PUT และ POST อ่านเพิ่มเติมเกี่ยวกับการใช้ AWS Lambda กับ Amazon API Gateway

คำถาม: ฟังก์ชัน AWS Lambda ของฉันสามารถกำหนดลักษณะการทำงานให้กับอุปกรณ์และแอปสร้างคำขอได้อย่างไร

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

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

เมื่อแอปใช้ข้อมูลประจำตัวของ Amazon Cognito ผู้ใช้ปลายทางสามารถรับรองความถูกต้องเองได้โดยใช้ผู้ให้บริการเข้าสู่ระบบแบบสาธารณะที่หลากหลาย เช่น Amazon, Facebook, Google และบริการอื่นๆ ที่รองรับ OpenID Connect ข้อมูลประจำตัวผู้ใช้จะถูกส่งต่อโดยอัตโนมัติและปลอดภัยไปยังฟังก์ชัน Lambda ของคุณในรูปแบบของรหัส Amazon Cognito เพื่อให้สามารถเข้าถึงข้อมูลผู้ใช้จาก Amazon Cognito หรือเป็นกุญแจสำคัญในการจัดเก็บและดึงข้อมูลใน Amazon DynamoDB หรือบริการเว็บอื่นๆ

คำถาม: ฉันจะสร้างทักษะ Alexa โดยใช้ AWS Lambda ได้อย่างไร

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

คำถาม: จะเกิดอะไรขึ้นถ้าฟังก์ชันของฉันผิดพลาดขณะประมวลผลเหตุการณ์

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

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

ใช้ AWS Lambda เพื่อสร้างแอปพลิเคชัน

คำถาม: แอปพลิเคชันแบบไร้เซิร์ฟเวอร์คืออะไร

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

คำถาม: ฉันจะปรับใช้และจัดการแอปพลิเคชันไร้เซิร์ฟเวอร์ได้อย่างไร

คุณสามารถปรับใช้และจัดการแอปพลิเคชันไร้เซิร์ฟเวอร์โดยใช้ AWS Serverless Application Model (AWS SAM) AWS SAM เป็นข้อกำหนดที่กำหนดกฎสำหรับการแสดงแอปพลิเคชันไร้เซิร์ฟเวอร์บน AWS ข้อกำหนดนี้สอดคล้องกับรูปแบบคำสั่งที่ AWS CloudFormation ใช้ในปัจจุบันและได้รับการรองรับแบบเนทีฟภายใน AWS CloudFormation ในฐานะชุดของประเภททรัพยากร (เรียกว่า "ทรัพยากรแบบไร้เซิร์ฟเวอร์") ทรัพยากรเหล่านี้ทำให้ลูกค้าของ AWS สามารถใช้งาน CloudFormation ได้ง่ายขึ้นเพื่อกำหนดค่าและปรับใช้แอปพลิเคชันแบบไร้เซิร์ฟเวอร์โดยใช้ CloudFormation API ที่มีอยู่

คำถาม: ฉันจะค้นพบแอปพลิเคชันแบบไร้เซิร์ฟเวอร์ที่มีอยู่ซึ่งพัฒนาขึ้นโดยชุมชน AWS ได้อย่างไร

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

คำถาม: ฉันจะติดตั้งแอปพลิเคชันไร้เซิร์ฟเวอร์โดยอัตโนมัติได้อย่างไร

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

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ CI/CD ไร้เซิร์ฟเวอร์ โปรดไปที่เอกสารประกอบของเรา

คำถาม: ฉันจะเริ่มต้นสร้างแอปพลิเคชันไร้เซิร์ฟเวอร์ได้อย่างไร

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

คำถาม: ฉันจะประสานงานการเรียกใช้ระหว่างหลายฟังก์ชัน AWS Lambda ได้อย่างไร

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

คำถาม: ฉันจะแก้ไขปัญหาแอปพลิเคชันไร้เซิร์ฟเวอร์ได้อย่างไร

คุณสามารถเปิดใช้งานฟังก์ชัน Lambda ของคุณสำหรับการติดตามด้วย AWS X-Ray โดยเพิ่มสิทธิ์ X-Ray ในบทบาทการดำเนินการของ Lambda และเปลี่ยน “โหมดการสืบค้นกลับ” ของฟังก์ชันเป็น “ใช้งานอยู่” เมื่อเปิดใช้งาน X-Ray สำหรับฟังก์ชัน Lambda ของคุณ AWS Lambda จะส่งข้อมูลการติดตามไปยัง X-Ray เกี่ยวกับค่าใช้จ่ายบริการของ Lambda ที่เกิดขึ้นเมื่อเรียกใช้ฟังก์ชันของคุณ ซึ่งจะช่วยให้ข้อมูลเชิงลึกแก่คุณเช่นค่าใช้จ่ายบริการ Lambda เวลาเริ่มทำงาน และเวลาการทำงานของฟังก์ชัน นอกจากนี้คุณยังสามารถใช้ X-Ray SDK ในแพคเกจการติดตั้ง Lambda ของคุณเพื่อสร้างกลุ่มการติดตาม อธิบายร่องรอย หรือดูส่วนการติดตามสำหรับการเรียกดาวน์สตรีมจากฟังก์ชัน Lambda ของคุณ X-Ray SDK มีให้บริการแล้วสำหรับ Node.js และ Java โปรดไปที่การแก้ไขปัญหาแอปพลิเคชันที่ใช้งาน Lambda เพื่อเรียนรู้เพิ่มเติม จะใช้อัตรา AWS X-Ray

ถาม: ฉันสามารถสร้างแอปพลิเคชันแบบไร้เซิร์ฟเวอร์ที่เชื่อมต่อกับฐานข้อมูลเชิงสัมพันธ์ได้หรือไม่

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

คำถาม: AWS SAM ได้รับสิทธิ์อย่างไร

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

รองรับอิมเมจคอนเทนเนอร์

คำถาม: การรองรับอิมเมจคอนเทนเนอร์สำหรับ AWS Lambda คืออะไร

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

คำถาม: ฉันจะใช้การรองรับอิมเมจคอนเทนเนอร์สำหรับ AWS Lambda ได้อย่างไร

คุณสามารถเริ่มต้นจากอิมเมจพื้นฐานที่ AWS ให้มาสำหรับ Lambda หรือใช้หนึ่งในอิมเมจในชุมชนหรือในบริษัทเอกชนที่คุณต้องการ จากนั้นเพียงใช้ Docker CLI สร้างอิมเมจ อัปโหลดไปยัง Amazon ECR แล้วสร้างฟังก์ชันโดยใช้อินเทอร์เฟซและเครื่องมือ Lambda ทั้งหมดที่คุณคุ้นเคย เช่น AWS Management Console, AWS CLI, AWS SDK, AWS SAM และ AWS CloudFormation

คำถาม: มีการรองรับอิมเมจคอนเทนเนอร์ประเภทใดบ้าง

คุณสามารถปรับใช้อิมเมจพื้นฐานของ Linux จากบริษัทภายนอก (เช่น Alpine หรือ Debian) ลงใน Lambda เพิ่มเติมจากอิมเมจที่ Lambda มีให้ได้ AWS Lambda จะรองรับอิมเมจทั้งหมดตามรูปแบบรายการอิมเมจดังต่อไปนี้: Docker Image Manifest V2 Schema 2 (ใช้กับ Docker เวอร์ชัน 1.10 หรือใหม่กว่า) หรือ Open Container Initiative (OCI) Spec (v1.0 หรือใหม่กว่า) Lambda รองรับรูปภาพขนาดสูงสุด 10 GB

คำถาม: รูปภาพพื้นฐานใดที่ฉันสามารถใช้ได้

AWS Lambda ให้รูปภาพพื้นฐานที่หลากหลายที่ลูกค้าสามารถขยายเพิ่มได้ และลูกค้ายังสามารถใช้รูปภาพของ Linux ตามที่ต้องการโดยมีขนาดสูงสุดไม่เกิน 10 GB

คำถาม: เครื่องมือคอนเทนเนอร์ใดที่ฉันสามารถใช้รวมแพ็กเกจและติดตั้งใช้งานฟังก์ชันเป็นอิมเมจคอนเทนเนอร์

คุณสามารถใช้เครื่องมือคอนเทนเนอร์ใดก็ได้ตราบเท่าที่มีการรองรับหนึ่งในรูปแบบรายการอิมเมจคอนเทนเนอร์ดังต่อไปนี้: Docker Image Manifest V2 Schema 2 (ใช้กับ Docker เวอร์ชัน 1.10 หรือใหม่กว่า) หรือ Open Container Initiative (OCI) Specifications (v1.0 หรือใหม่กว่า) เช่น คุณสามารถใช้เครื่องมือคอนเทนเนอร์แบบเนทีฟ (เช่น รันด็อคเกอร์, สร้างด็อคเกอร์, Buildah และ Packer) เพื่อกำหนดฟังก์ชันของคุณเป็นอิมเมจคอนเทนเนอร์และติดตั้งใช้จริงกับ Lambda

คำถาม: คุณสมบัติใดบ้างของ AWS Lambda มีพร้อมใช้งานสำหรับฟังก์ชันที่ติดตั้งใช้จริงเป็นอิมเมจคอนเทนเนอร์

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

คำถาม: AWS Lambda จะแพทช์และอัปเดตอิมเมจคอนเทนเนอร์ที่ติดตั้งใช้จริงของฉันหรือไม่

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

คำถาม: ฟังก์ชันที่สร้างโดยใช้การเก็บถาวร ZIP กับอิมเมจคอนเทนเนอร์ แตกต่างกันอย่างไร

ฟังก์ชันที่สร้างโดยใช้การเก็บถาวร ZIP เทียบกับอิมเมจคอนเทนเนอร์ แตกต่างกันสามประการหลักๆ คือ

  1. ฟังก์ชันที่สร้างโดยใช้การเก็บถาวร ZIP มีขนาดแพ็กเกจโค้ดสูงสุด 250 MB แบบแตกไฟล์ไว้ และฟังก์ชันที่สร้างโดยใช้อิมเมจคอนเทนเนอร์มีขนาดรูปภาพสูงสุด 10 GB 
  2. Lambda ใช้ Amazon ECR เป็นพื้นที่เก็บโค้ดที่สำคัญสำหรับฟังก์ชันที่ได้รับการกำหนดให้เป็นอิมเมจคอนเทนเนอร์ ดังนั้นฟังก์ชันจึงไม่สามารถเรียกคืนได้เมื่อรูปภาพที่สำคัญถูกลบออกจาก ECR 
  3. ฟังก์ชัน ZIP จะแพทช์โดยอัตโนมัติเพื่อความปลอดภัยของรันไทม์ล่าสุดและการแก้ไขจุดบกพร่อง ฟังก์ชันที่กำหนดให้เป็นอิมเมจคอนเทนเนอร์จะเปลี่ยนแปลงไม่ได้ และลูกค้าต้องรับผิดชอบต่อส่วนประกอบที่รวมเป็นแพ็กเกจในฟังก์ชันของตน ลูกค้าสามารถใช้ประโยชน์จากอิมเมจพื้นฐานที่ AWS ให้มา ซึ่ง AWS จะอัปเดตเป็นประจำเพื่อความปลอดภัยและการแก้ไขจุดบกพร่อง โดยใช้แพทช์ล่าสุดที่มี

คำถาม: มีความแตกต่างด้านประสิทธิภาพระหว่างฟังก์ชันที่กำหนดเป็น zip และอิมเมจคอนเทนเนอร์หรือไม่

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

คำถาม: ระบบจะเรียกเก็บเงินอย่างไรสำหรับการปรับใช้ฟังก์ชัน Lambda เป็นอิมเมจคอนเทนเนอร์

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

คำถาม: Lambda Runtime Interface Emulator (RIE) คืออะไร

Lambda Runtime Interface Emulator เป็นพร็อกซีสำหรับ Runtime API ของ Lambda ซึ่งช่วยให้ลูกค้าสามารถทดสอบฟังก์ชัน Lambda ภายในที่รวมแพ็กเกจเป็นอิมเมจคอนเทนเนอร์ได้ RIE เป็นเว็บเซิร์ฟเวอร์ที่ใช้พื้นที่น้อยซึ่งจะแปลงคำขอ HTTP ไปเป็นเหตุการณ์ JSON และจำลอง Lambda Runtime API ช่วยให้คุณทดสอบฟังก์ชันภายในโดยใช้เครื่องมือที่คุ้นเคย เช่น cURL และ Docker CLI (เมื่อทดสอบฟังก์ชันที่รวมแพ็กเกจเป็นอิมเมจคอนเทนเนอร์) ทั้งยังช่วยให้การใช้งานแอปพลิเคชันของคุณเป็นเรื่องง่ายบนบริการประมวลผลเพิ่มเติม คุณสามารถรวม Lambda Runtime Interface Emulator ลงในอิมเมจคอนเทนเนอร์ของคุณเพื่อให้ยอมรับคำขอ HTTP ได้แบบเนทีฟแทนเหตุการณ์ JSON ที่จำเป็นสำหรับการปรับใช้กับ Lambda ส่วนประกอบนี้จะไม่จำลองตัวประสานการทำงานของ Lambda หรือการกำหนดค่าความปลอดภัยและการตรวจสอบสิทธิ์ Runtime Interface Emulator เป็นเครื่องมือแบบโอเพนซอร์สบน GitHub คุณสามารถเริ่มต้นใช้งานโดยดาวน์โหลดและติดตั้งลงภายในเครื่องของคุณ

คำถาม: ทำไมฉันจำเป็นต้องใช้ Lambda Runtime Interface Emulator (RIE) ในระหว่างการทดสอบภายใน

Lambda Runtime API ในบริการ Lambda ที่กำลังทำงานอยู่ ยอมรับเหตุการณ์ JSON และให้การตอบกลับ Lambda Runtime Interface Emulator ช่วยให้ฟังก์ชันที่ถูกรวมแพ็กเกจเป็นอิมเมจคอนเทนเนอร์ยอมรับคำขอ HTTP ในระหว่างการทดสอบภายในโดยใช้เครื่องมือ เช่น cURL และเผยคำขอเหล่านั้นผ่านทางอินเทอร์เฟซเดียวกันภายในให้แก่ฟังก์ชัน ช่วยให้คุณสามารถใช้คำสั่งการรันด็อคเกอร์หรือการสร้างด็อคเกอร์เพื่อทดสอบแอปพลิเคชัน Lambda ภายในของคุณ

คำถาม: พฤติกรรมฟังก์ชันแบบใดที่ฉันสามารถทดสอบภายในได้ด้วยโปรแกรมจำลอง

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

คำถาม: Runtime Interface Emulator (RIE) ช่วยฉันเรียกใช้รูปภาพที่ใช้งานได้กับ Lambda บนบริการประมวลผลเพิ่มเติมอย่างไร

ลูกค้าสามารถเพิ่ม Runtime Interface Emulator เป็นจุดขาเข้าในอิมเมจคอนเทนเนอร์หรือรวมแพ็กเกจเป็นตัวพ่วงเพื่อให้แน่ใจว่าตอนนี้อิมเมจคอนเทนเนอร์ยอมรับคำขอ HTTP แทนเหตุการณ์ JSON การทำเช่นนี้ช่วยให้ทำการเปลี่ยนแปลงที่จำเป็นในการเรียกใช้อิมเมจคอนเทนเนอร์บนบริการประมวลผลเพิ่มเติมมีความง่ายยิ่งขึ้น ลูกค้าจะต้องรับผิดชอบในการตรวจสอบให้แน่ใจว่าตนปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดทั้งหมดด้านความปลอดภัย ประสิทธิภาพ และการทำงานพร้อมกันสำหรับสภาพแวดล้อมที่ตนเลือก RIE เป็นเครื่องมือสำเร็จรูปอยู่ในรูปภาพที่ AWS Lambda มีให้ และพร้อมใช้งานตามค่าเริ่มต้นใน AWS SAM CLI ผู้ให้บริการอิมเมจพื้นฐานสามารถใช้เอกสารประกอบเพื่อมอบประสบการณ์เดียวกันสำหรับอิมเมจพื้นฐานของตนเองได้

คำถาม: ฉันจะติดตั้งใช้แอปพลิเคชันที่มีคอนเทนเนอร์ที่มีอยู่ของฉันลงใน AWS Lambda อย่างไร

คุณสามารถติดตั้งใช้แอปพลิเคชันที่มีคอนเทนเนอร์ลงใน AWS Lambda เมื่อเป็นไปตามข้อกำหนดด้านล่างนี้:

  1. อิมเมจคอนเทนเนอร์ต้องใช้งาน Lambda Runtime API เรามีชุดแพ็กเกจซอฟต์แวร์แบบโอเพนซอร์สอย่าง Runtime Interface Clients (RIC) ที่ใช้งาน Lambda Runtime API ช่วยให้คุณขยายรูปภาพพื้นฐานที่ต้องการให้สามารถใช้งานได้กับ Lambda อย่างราบรื่น
  2. อิมเมจคอนเทนเนอร์จะต้องสามารถทำงานได้บนระบบไฟล์แบบอ่านอย่างเดียว โค้ดฟังก์ชันของคุณสามารถเข้าถึงพื้นที่เก็บข้อมูลของไดเรกทอรี/tmp แบบเขียนได้ขนาด 512 MB หากคุณใช้อิมเมจที่จะต้องมีไดเรกทอรีรากแบบเขียนได้ ให้กำหนดค่าอิมเมจเพื่อเขียนลงในไดเรกทอรี /tmp
  3. ผู้ใช้ Lambda เริ่มต้นสามารถอ่านไฟล์ที่จำเป็นสำหรับการดำเนินการของโค้ดฟังก์ชันได้ Lambda กำหนดผู้ใช้ Linux เริ่มต้นให้มีสิทธิ์ที่มีความพิเศษน้อยที่สุดที่สอดคล้องตามแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย คุณจำเป็นต้องตรวจสอบยืนยันว่าโค้ดแอปพลิเคชันของคุณไม่ได้ขึ้นอยู่กับไฟล์ที่ถูกจำกัดโดยผู้ใช้ Linux รายอื่นสำหรับใช้ดำเนินการ
  4. เป็นอิมเมจคอนเทนเนอร์บน Linux

กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน

คำถาม: กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานของ AWS Lambda คืออะไร

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

คำถาม: ฉันจะตั้งค่าและจัดการกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานได้อย่างไร

คุณสามารถกำหนดค่ากระบวนการทำงานพร้อมกันในฟังก์ชันของคุณได้ผ่าน AWS Management Console, Lambda API, AWS CLI และ AWS CloudFormation วิธีที่ง่ายที่สุดที่จะได้รับประโยชน์จากกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานนั้นคือการใช้งาน AWS Auto Scaling คุณสามารถใช้ Auto Scaling ของแอปพลิเคชันเพื่อกำหนดค่าตารางเวลา หรือให้ Auto Scaling ปรับระดับกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานโดยอัตโนมัติแบบเรียลไทม์เมื่อความต้องการเปลี่ยนแปลง หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน โปรดดูที่เอกสารประกอบ

คำถาม: หากฉันต้องการใช้กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน ฉันต้องเปลี่ยนโค้ดของฉันหรือไม่

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

คำถาม: ระบบจะเรียกเก็บเงินสำหรับกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานอย่างไร

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

คำถาม: เมื่อใดที่ฉันควรใช้กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน

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

คำถาม: จะเกิดอะไรขึ้นหากฟังก์ชันได้รับคำขอร้องเกินระดับที่กำหนดให้กับกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน

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

ฟังก์ชัน AWS Lambda ที่ขับเคลื่อนด้วยตัวประมวลผล Graviton2

คำถาม: ฟังก์ชัน AWS Lambda ที่ขับเคลื่อนด้วยตัวประมวลผล Graviton2 คืออะไร

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

คำถาม: เหตุใดฉันจึงควรใช้ AWS Lambda ที่ขับเคลื่อนด้วยตัวประมวลผล Graviton2

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

คำถาม: ฉันจะกำหนดค่าฟังก์ชันให้ทำงานบนตัวประมวลผล Graviton2 ได้อย่างไร

คุณสามารถกำหนดค่าฟังก์ชันให้ทำงานบน Graviton2 ผ่าน AWS Management Console, AWS Lambda API, AWS CLI และ AWS CloudFormation ได้โดยการตั้งค่าสถานะสถาปัตยกรรมเป็น 'arm64' สำหรับฟังก์ชันของคุณ

คำถาม: ฉันจะปรับใช้แอปพลิเคชันที่สร้างโดยใช้ฟังก์ชันที่ขับเคลื่อนด้วยตัวประมวลผล Graviton2 ได้อย่างไร

ไม่มีการเปลี่ยนแปลงระหว่างฟังก์ชันที่ใช้ x86 และ Arm เพียงอัปโหลดโค้ดของคุณผ่าน AWS Management Console, ไฟล์ zip หรืออิมเมจคอนเทนเนอร์ แล้ว AWS Lambda จะเรียกใช้โค้ดของคุณโดยอัตโนมัติเมื่อทริกเกอร์ โดยที่คุณไม่ต้องจัดเตรียมหรือจัดการโครงสร้างพื้นฐาน

คำถาม: แอปพลิเคชันสามารถใช้ทั้งสองฟังก์ชันที่ขับเคลื่อนด้วยตัวประมวลผล Graviton2 และตัวประมวลผล x86 ได้หรือไม่

แอปพลิเคชันสามารถมีฟังก์ชันที่ทำงานบนสถาปัตยกรรมทั้งสองได้ AWS Lambda ช่วยให้คุณสามารถเปลี่ยนสถาปัตยกรรม ('x86_64' หรือ 'arm64') ของฟังก์ชันในเวอร์ชันปัจจุบันได้ เมื่อคุณสร้างเวอร์ชันเฉพาะของฟังก์ชันแล้ว จะไม่สามารถเปลี่ยนแปลงสถาปัตยกรรมได้

คำถาม: AWS Lambda รองรับอิมเมจคอนเทนเนอร์แบบหลายสถาปัตยกรรมหรือไม่

ไม่ แต่ละเวอร์ชันของฟังก์ชันสามารถใช้อิมเมจคอนเทนเนอร์ได้เพียงรายการเดียวเท่านั้น

คำถาม: ฉันสามารถสร้าง AWS Lambda Layers ที่กำหนดเป้าหมายฟังก์ชันที่ขับเคลื่อนด้วยหน่วยประมวลผล AWS Graviton2 ได้หรือไม่

ได้ โดยสามารถกำหนดเป้าหมายเลเยอร์และส่วนขยายไปยังสถาปัตยกรรมที่เข้ากันได้กับ 'x86_64' หรือ 'arm64' สถาปัตยกรรมเริ่มต้นสำหรับฟังก์ชันและเลเยอร์คือ 'x86_64'

ถาม: ฟังก์ชัน Lambda ที่ทำงานบนตัวประมวลผล Graviton2 รองรับภาษาและรันไทม์ใดบ้าง

เมื่อเปิดตัว ลูกค้าสามารถใช้อิมเมจ Python, Node.js, Java, Ruby, .Net Core, Custom Runtime (provided.al2) และ OCI Base ได้ หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่ AWS Lambda Runtimes

คำถาม: ราคาของฟังก์ชัน AWS Lambda ที่ขับเคลื่อนด้วยตัวประมวลผล AWS Graviton2 เป็นอย่างไร Free Tier ของ AWS Lambda ใช้กับฟังก์ชันที่ขับเคลื่อนด้วย Graviton2 ได้หรือไม่

ฟังก์ชัน AWS Lambda ที่ขับเคลื่อนด้วยตัวประมวลผล AWS Graviton2 มีราคาถูกกว่า 20% เมื่อเทียบกับฟังก์ชัน Lambda ที่ใช้ x86 Free Tier ของ Lambda ใช้กับฟังก์ชัน AWS Lambda ที่ขับเคลื่อนด้วยสถาปัตยกรรมแบบ x86 และ Arm

คำถาม: ฉันจะเลือกระหว่างการเรียกใช้ฟังก์ชันบนตัวประมวลผล Graviton2 หรือตัวประมวลผล x86 ได้อย่างไร

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

คำถาม: ฉันจำเป็นต้องใช้เครื่องพัฒนาแบบ Arm เพื่อประดิษฐ์ สร้าง และทดสอบฟังก์ชันที่ขับเคลื่อนด้วยตัวประมวลผล Graviton2 ในเครื่องหรือไม่

ภาษาที่ตีความแล้ว เช่น Python, Java และ Node โดยทั่วไปไม่ต้องดำเนินการคอมไพล์ซ้ำ เว้นแต่โค้ดของคุณจะอ้างอิงถึงไลบรารีที่ใช้ส่วนประกอบเฉพาะของสถาปัตยกรรม ในกรณีดังกล่าว คุณจะต้องจัดเตรียมไลบรารีที่กำหนดเป้าหมายไปยัง arm64 สำหรับรายละเอียดเพิ่มเติม โปรดดูหน้าเริ่มต้นใช้งาน AWS Graviton ภาษาที่ไม่ได้ตีความแล้วจะต้องคอมไพล์โค้ดของคุณเพื่อกำหนดเป้าหมาย arm64 แม้ว่าคอมไพเลอร์ที่ทันสมัยกว่าจะสร้างโค้ดที่คอมไพล์แล้วสำหรับ arm64 แต่คุณจะต้องปรับใช้โค้ดดังกล่าวในสภาพแวดล้อมแบบ Arm เพื่อทดสอบ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการใช้ฟังก์ชัน Lambda ด้วย Graviton2 โปรดดูเอกสารประกอบ

Amazon EFS สำหรับ AWS Lambda

คำถาม: Amazon EFS สำหรับ AWS Lambda คืออะไร

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

คำถาม: ฉันจะตั้งค่า Amazon EFS สำหรับ Lambda ได้อย่างไร

นักพัฒนาสามารถเชื่อมต่อระบบไฟล์ EFS ที่มีอยู่เข้ากับฟังก์ชัน Lambda ได้ง่ายๆ ผ่านทาง EFS Access Point โดยใช้ Console, CLI หรือ SDK เมื่อเรียกใช้งานฟังก์ชันครั้งแรก ระบบไฟล์จะติดตั้งโดยอัตโนมัติและพร้อมใช้งานกับโค้ดฟังก์ชัน คุณสามารถเรียนรู้เพิ่มเติมได้ในเอกสารประกอบ

คำถาม: ฉันจำเป็นต้องกำหนดค่าฟังก์ชันของฉันด้วยการตั้งค่า VPC ก่อนที่จะสามารถใช้ระบบไฟล์ Amazon EFS ของฉันหรือไม่

ใช่ เป้าหมายติดตั้งสำหรับ Amazon EFS จะเชื่อมโยงกับซับเน็ตใน VPC ต้องกำหนดค่าฟังก์ชัน AWS Lambda เพื่อเข้าถึง VPC นั้น

คำถาม: ใครควรใช้ Amazon EFS สำหรับ Lambda

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

คำถาม: ข้อมูลของฉันจะถูกเข้ารหัสในระหว่างการส่งหรือไม่

ใช่ การเข้ารหัสข้อมูลระหว่างการส่งจะใช้ Transport Layer Security (TLS) 1.2 ระดับมาตรฐานอุตสาหกรรมเพื่อเข้ารหัสข้อมูลที่ส่งระหว่างฟังก์ชัน AWS Lambda กับระบบไฟล์ Amazon EFS

คำถาม: ข้อมูลของฉันจะเข้ารหัสระหว่างการพักเก็บหรือไม่

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

คำถาม: ฉันจะถูกเรียกเก็บค่าบริการสำหรับการใช้งาน Amazon EFS สำหรับ AWS Lambda อย่างไร

ไม่มีค่าบริการเพิ่มเติมในการใช้งาน Amazon EFS สำหรับ AWS Lambda ลูกค้าชำระค่าบริการตามราคามาตรฐานสำหรับ AWS Lambda และสำหรับ Amazon EFS เมื่อใช้ Lambda และ EFS ใน Availability Zone เดียวกัน ลูกค้าจะไม่ถูกเรียกเก็บค่าบริการสำหรับการถ่ายโอนข้อมูล อย่างไรก็ตาม หากลูกค้าใช้ VPC Peering เพื่อการเข้าถึงข้ามบัญชี ลูกค้าจะถูกเรียกเก็บค่าบริการการถ่ายโอนข้อมูล หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่ราคา

คำถาม:ฉันสามารถเชื่อมโยงระบบไฟล์ Amazon EFS มากกว่าหนึ่งระบบเข้ากับฟังก์ชัน AWS Lambda ของฉันได้หรือไม่

ไม่ได้ ฟังก์ชัน Lambda แต่ละฟังก์ชันจะสามารถเข้าถึงระบบไฟล์ EFS ได้ระบบเดียว

คำถาม: ฉันสามารถใช้ระบบไฟล์ Amazon EFS เดียวกันในหลายๆ ฟังก์ชัน คอนเทนเนอร์ และอินสแตนซ์ได้หรือไม่

ได้ Amazon EFS รองรับฟังก์ชัน Lambda, ECS และคอนเทนเนอร์ Fargate และ EC2 instance คุณสามารถแชร์ระบบไฟล์เดียวกันและใช้นโยบาย IAM และ Access Point เพื่อควบคุมสิ่งที่แต่ละฟังก์ชัน คอนเทนเนอร์ หรืออินสแตนซ์สามารถเข้าถึงได้  

Lambda Extensions

คำถาม: ส่วนขยายของ AWS Lambda คืออะไร

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

คำถาม: ส่วนขยายของ Lambda ทำงานอย่างไร

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

คำถาม: ฉันสามารถใช้ส่วนขยาย Lambda ทำสิ่งใดได้บ้าง

คุณสามารถใช้ส่วนขยายสำหรับเครื่องมือที่คุณโปรดปรานเพื่อการตรวจสอบ การเฝ้าสังเกต การรักษาความปลอดภัย และการกำกับดูแลจาก AWS รวมถึงคู่ค้าดังต่อไปนี้: AppDynamics, Coralogix, Datadog, Dynatrace, Epsagon, HashiCorp, Honeycomb, Imperva, Lumigo, Check Point CloudGuard, New Relic, Thundra, Splunk, Sentry, Site24x7, Sumo Logic, AWS AppConfig, Amazon CodeGuru Profiler, Amazon CloudWatch Lambda Insights, AWS Distro for OpenTelemetry หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับส่วนขยายเหล่านี้ โปรดไปที่โพสต์บล็อกการเปิดตัว

คำถาม: ฉันจะตั้งค่าและจัดการส่วนขยาย Lambda อย่างไร

คุณสามารถติดตั้งใช้ส่วนขยายโดยใช้ Layers ในฟังก์ชัน Lambda หนึ่งฟังก์ชันขึ้นไปโดยใช้ Console, CLI หรือโครงสร้างพื้นฐานเป็นเครื่องมือโค้ด เช่น CloudFormation, AWS Serverless Application Model และ Terraform โปรดไปที่เอกสารประกอบเพื่อเริ่มต้นใช้งาน

คำถาม: ฉันสามารถใช้ส่วนขยายของ AWS Lambda กับรันไทม์ใดบ้าง

คุณสามารถดูรายการของรันไทม์ที่รองรับส่วนขยายได้ที่นี่

คำถาม: ส่วนขยายจะนำไปคำนวณกับขีดจำกัดแพคเกจการติดตั้งใช้งานหรือไม่

ใช่ ขนาดโดยรวมของฟังก์ชันที่แตกไฟล์แล้วและส่วนขยายทั้งหมดจะต้องไม่เกินขีดจำกัดของขนาดแพกเกจการติดตั้งใช้จริงที่แตกไฟล์แล้วจำนวน 250 MB ได้

คำถาม: จะมีผลกระทบด้านประสิทธิภาพจากการใช้ส่วนขยายหรือไม่

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

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

คำถาม: ฉันจะถูกเรียกเก็บค่าใช้จ่ายอย่างไรสำหรับการใช้ส่วนขยาย Lambda

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

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

ไม่มีค่าใช้จ่ายเพิ่มเติมสำหรับการติดตั้งส่วนขยาย แม้ว่าข้อเสนอของคู่ค้าอาจมีการเรียกเก็บเงินก็ตาม โปรดดูรายละเอียดในเว็บไซต์ของคู่ค้าที่เกี่ยวข้อง

คำถาม: ฉันสามารถสร้างส่วนขยาย Lambda แบบกำหนดเองเป็นของตนเองได้หรือไม่

ได้ โดยการใช้ AWS Lambda Runtime Extensions API โปรดเข้าไปที่เอกสารประกอบเพื่อเรียนรู้เพิ่มเติม

คำถาม: ส่วนขยายทำงานอย่างไรในขณะที่มีการเปิดใช้งานกระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งาน (Provisioned Concurrency)

กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานจะเริ่มใช้งานฟังก์ชันต่างๆ และพร้อมตอบสนองภายในเวลามิลลิวินาทีสองหลัก เมื่อเปิดใช้งานแล้ว กระบวนการทำงานพร้อมกันที่มีการเตรียมใช้งานจะเริ่มต้นใช้งานส่วนขยายด้วยและทำให้ส่วนขยายเหล่านั้นพร้อมที่จะดำเนินการไปพร้อมกันกับโค้ดของฟังก์ชัน

คำถาม: ส่วนขยายมีสิทธิ์ใดบ้าง

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

ถาม: AWS Lambda Runtime Logs API คืออะไร

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

ถาม: Runtime Logs API ทำงานอย่างไร

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

Runtime Logs API ทำให้ผู้สร้างส่วนขยายสามารถสมัครรับข้อมูลจากสตรีมบันทึกเดียวกันได้โดยตรงจากภายในสภาพแวดล้อมการดำเนินการของ Lambda หลังจากที่ได้รับคำขอการสมัครรับข้อมูลแล้ว บริการของ Lambda จะสตรีมบันทึกไปยังส่วนขยายผ่าน HTTP หรือ TCP เพิ่มเติมจากการส่งบันทึกไปยัง CloudWatch ด้วย

ถาม: ฉันจะเริ่มต้นใช้งาน Runtime Logs API ได้อย่างไร

คุณสามารถปรับใช้ส่วนขยายที่ใช้ Runtime Logs API ได้โดยใช้ Layers ในฟังก์ชันของ Lambda หนึ่งฟังก์ชันขึ้นไปโดยใช้ Console, CLI หรือโครงสร้างพื้นฐานเป็นเครื่องมือโค้ด เช่น CloudFormation, AWS Serverless Application Model และ Terraform

คุณสามารถใช้ส่วนขยายสำหรับเครื่องมือที่คุณชื่นชอบเพื่อการตรวจสอบ การเฝ้าสังเกต การรักษาความปลอดภัย และการกำกับดูแลจาก AWS รวมถึงคู่ค้าต่อไปนี้: Coralogix, Datadog, Honeycomb, Lumigo, New Relic, Sumo Logic และ Amazon CloudWatch หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับส่วนขยายเหล่านี้ โปรดไปที่โพสต์บล็อกการเปิดตัว

ถาม: การใช้ Runtime Logs API จะมีผลกระทบด้านประสิทธิภาพหรือไม่

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

ถาม: ระบบจะเรียกเก็บเงินสำหรับการใช้ Runtime Logs API อย่างไร

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

ถาม: การใช้ Runtime Logs API จะปิดใช้งานการส่งบันทึกไปยัง Amazon CloudWatch Logs หรือไม่

ไม่ ตามค่าเริ่มต้น แพลตฟอร์ม Lambda จะส่งบันทึกทั้งหมดไปยัง CloudWatch Logs และการใช้ Runtime Logs API จะไม่ปิดใช้งานการส่งออกไปยัง CloudWatch Logs

URL ของฟังก์ชัน AWS Lambda

ถาม: ฟังก์ชัน AWS Lambda รองรับตำแหน่งข้อมูล HTTPS หรือไม่

รองรับ คุณสามารถกำหนดค่าฟังก์ชัน Lambda ด้วย URL ของฟังก์ชัน ซึ่งเป็นตำแหน่งข้อมูล HTTPS ในตัวที่คุณเรียกใช้ได้โดยใช้เบราว์เซอร์, cURL และไคลเอ็นต์ HTTP URL ของฟังก์ชันช่วยให้เริ่มสร้างฟังก์ชันที่ HTTPS เข้าถึงได้อย่างง่ายดาย

ถาม: ฉันจะกำหนดค่า URL ของฟังก์ชัน Lambda สำหรับฟังก์ชันของฉันได้อย่างไร

คุณสามารถกำหนดค่า URL ของฟังก์ชันได้ผ่าน AWS Management Console, Lambda API, AWS Command Line Interface (CLI), AWS CloudFormation และ AWS Serverless Application Model (AWS SAM) โดยสามารถตั้งค่า URL ของฟังก์ชันเป็นเวอร์ชัน $LATEST ที่ไม่มีเงื่อนไขของฟังก์ชันคุณ หรือในนามแฝงของฟังก์ชันใดๆ ก็ได้ ดูเอกสารประกอบเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการกำหนดค่า URL ของฟังก์ชัน

ถาม: ฉันจะเก็บรักษา URL ของฟังก์ชัน Lambda ให้ปลอดภัยได้อย่างไรบ้าง

URL ของฟังก์ชัน Lambda ได้รับการรักษาความปลอดภัยด้วยสิทธิ์การอนุญาต AWS Identity and Access Management (IAM) ตามค่าเริ่มต้น คุณสามารถเลือกที่จะปิดการให้สิทธิ์ IAM เพื่อสร้างตำแหน่งข้อมูลสาธารณะหรือปรับใช้การให้สิทธิ์แบบกำหนดเองเป็นส่วนหนึ่งของตรรกะทางธุรกิจของฟังก์ชันได้

ถาม: ฉันจะเรียกใช้ฟังก์ชันด้วย URL ของฟังก์ชัน Lambda ได้อย่างไร

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

ถาม: URL ของฟังก์ชัน Lambda ทำงานร่วมกับเวอร์ชันและนามแฝงของฟังก์ชันได้หรือไม่

ได้ คุณสามารถตั้งค่า URL ของฟังก์ชัน Lambda เป็นฟังก์ชันหรือนามแฝงฟังก์ชันได้ หากไม่มีการระบุนามแฝง URL จะนำไปที่ $LATEST โดยค่าเริ่มต้น URL ของฟังก์ชันไม่สามารถกำหนดเป้าหมายเวอร์ชันของฟังก์ชันเฉพาะรายการได้

ถาม: ฉันสามารถตั้งค่าโดเมนแบบกำหนดเองสำหรับ URL ของฟังก์ชัน Lambda ของฉันได้หรือไม่

ปัจจุบัน URL ของฟังก์ชันไม่รองรับชื่อโดเมนแบบกำหนดเอง หากต้องการใช้โดเมนแบบกำหนดเองกับ URL ของฟังก์ชันคุณ ให้สร้างการกระจาย Amazon CloudFront และ CNAME เพื่อจับคู่โดเมนแบบกำหนดเองของคุณกับชื่อการกระจาย CloudFront จากนั้น จับคู่ชื่อโดเมนการกระจาย CloudFront ของคุณ เพื่อกำหนดเส้นทางไปยัง URL ของฟังก์ชันคุณเป็นจุดเริ่มต้น

ถาม: ฉันสามารถใช้ URL ของฟังก์ชัน Lambda เพื่อเรียกใช้ฟังก์ชันใน VPC ได้หรือไม่

ได้ คุณสามารถใช้ URL ของฟังก์ชันเพื่อเรียกใช้ฟังก์ชัน Lambda ใน Virtual Private Cloud (VPC) ได้

ถาม: URL ของฟังก์ชัน Lambda มีราคาเท่าใด

ไม่มีค่าบริการเพิ่มเติมสำหรับการใช้ URL ของฟังก์ชันที่เกินราคามาตรฐานสำหรับ Lambda หากต้องการเรียนรู้เพิ่มเติม โปรดดูราคา AWS Lambda

Lambda@Edge

คำถาม: Lambda@Edge คืออะไร

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

คำถาม: ฉันจะใช้ Lambda@Edge ได้อย่างไร

เมื่อต้องการใช้ Lambda@Edge คุณเพียงอัปโหลดโค้ดของคุณไปที่ AWS Lambda และเชื่อมโยงเวอร์ชันฟังก์ชันที่จะเรียกใช้เพื่อตอบสนองคำขอ Amazon CloudFront โค้ดของคุณต้องเป็นไปตาม Service Limits ของ Lambda@Edge Lambda@Edge รองรับ Node.js และ Python สำหรับคำขอร้องทั่วโลกโดยเหตุการณ์ CloudFront ในขณะนี้ เรียนรู้เพิ่มเติมได้ในเอกสารประกอบของเรา

คำถาม: ฉันควรใช้ Lambda@Edge เมื่อใด

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

คำถาม: ฉันสามารถปรับใช้ฟังก์ชัน Lambda ที่มีอยู่สำหรับคำขอร้องทั่วโลกได้หรือไม่

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

คำถาม: เหตุการณ์ Amazon CloudFront ใดบ้างที่สามารถเรียกใช้ฟังก์ชันของฉันได้

ฟังก์ชันของคุณจะเรียกใช้โดยอัตโนมัติเพื่อตอบสนองเหตุการณ์ของ Amazon CloudFront ต่อไปนี้

  • คำขอจากผู้ชม - เหตุการณ์นี้จะเกิดขึ้นเมื่อผู้ใช้ปลายทางหรืออุปกรณ์บนอินเทอร์เน็ตส่งคำขอ HTTP(S) ไปยัง CloudFront และคำขอดังกล่าวไปถึง Edge Location ที่อยู่ใกล้ผู้ใช้รายนั้นมากที่สุด
  • การตอบสนองจากผู้ชม - เหตุการณ์นี้จะเกิดขึ้นเมื่อเซิร์ฟเวอร์ CloudFront ที่ Edge พร้อมที่จะตอบสนองต่อผู้ใช้ปลายทางหรืออุปกรณ์ที่ส่งคำขอ
  • คำขอจากต้นทาง - เหตุการณ์นี้จะเกิดขึ้นเมื่อเซิร์ฟเวอร์ CloudFront ที่ Edge ไม่มีอ็อบเจกต์ที่ขออยู่ในแคช และคำขอจากผู้ชมก็พร้อมที่จะส่งไปยังเว็บเซิร์ฟเวอร์แบ็คเอนด์ต้นทางของคุณ (เช่น Amazon EC2 หรือ Application Load Balancer หรือ Amazon S3)
  • การตอบสนองจากต้นทาง - เหตุการณ์นี้จะเกิดขึ้นเมื่อเซิร์ฟเวอร์ CloudFront ที่ Edge ได้รับการตอบสนองจากเว็บเซิร์ฟเวอร์แบ็คเอนด์ต้นทางของคุณ

คำถาม: AWS Lambda@Edge แตกต่างจากการใช้ AWS Lambda เบื้องหลัง Amazon API Gateway อย่างไร

ความแตกต่างคือ API Gateway และ Lambda เป็นบริการระดับภูมิภาค การใช้ Lambda@Edge และ Amazon CloudFront ช่วยให้คุณสามารถประมวลผลลอจิกได้ใน AWS หลายตำแหน่งตามจุดที่ผู้ชมปลายทางของคุณอยู่

ความสามารถในการปรับขนาดและความพร้อมใช้งาน

คำถาม: ฟังก์ชัน AWS Lambda พร้อมใช้งานอย่างไร

AWS Lambda ได้รับการออกแบบมาเพื่อใช้การจำลองแบบและความซ้ำซ้อนเพื่อให้มีความพร้อมใช้งานสูงสำหรับทั้งบริการและฟังก์ชัน Lambda ที่ดำเนินการ ไม่มีกรอบการบำรุงรักษาหรือการหยุดทำงานที่กำหนดไว้สำหรับทั้งสองระบบ

คำถาม: ฟังก์ชัน AWS Lambda ยังสามารถใช้ได้เมื่อฉันเปลี่ยนโค้ดหรือการกำหนดค่าหรือไม่

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

คำถาม: มีขีดจำกัดของจำนวนฟังก์ชัน AWS Lambda ที่ฉันสามารถใช้งานได้พร้อมกันหรือไม่

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

หากคุณต้องการส่งคำขอเพื่อเพิ่มขีดจำกัด คุณสามารถไปที่ศูนย์การสนับสนุนของเราโดยคลิก "เปิดกรณีใหม่" และยื่นคำขอเพิ่มขีดจำกัดของบริการ

คำถาม: จะเกิดอะไรขึ้นหากบัญชีของฉันเกินขีดจำกัดเริ่มต้นสำหรับการดำเนินการที่เกิดขึ้นพร้อมกัน

เมื่อเกินขีดจำกัด ฟังก์ชัน AWS Lambda ที่ถูกเรียกใช้แบบซิงโครนัสจะส่งคืนข้อผิดพลาดเกี่ยวกับขีดจำกัด (รหัสข้อผิดพลาด 429) ฟังก์ชัน Lambda ที่ถูกเรียกใช้แบบอะซิงโครนัสสามารถดูดซับการรับส่งข้อมูลที่เหมาะสมได้ประมาณ 15-30 นาทีหลังจากที่เหตุการณ์ขาเข้าจะถูกปฏิเสธเนื่องจากมีการควบคุม ในกรณีที่ฟังก์ชัน Lambda ถูกเรียกใช้เพื่อตอบสนองต่อเหตุการณ์ Amazon S3 กิจกรรมที่ AWS Lambda ปฏิเสธอาจถูกเก็บรักษาและเรียกซ้ำโดย S3 เป็นเวลา 24 ชั่วโมง เหตุการณ์จาก Amazon Kinesis Streams และสตรีม Amazon DynamoDB จะถูกเรียกซ้ำจนกว่าฟังก์ชัน Lambda จะสำเร็จหรือข้อมูลหมดอายุ Amazon Kinesis Streams และสตรีม Amazon DynamoDB จะเก็บข้อมูลเป็นเวลา 24 ชั่วโมง

คำถาม: ขีดจำกัดเริ่มต้นจะนำไปใช้ในแต่ละระดับฟังก์ชันหรือไม่

ไม่ ขีดจำกัดเริ่มต้นจะใช้กับระดับบัญชีเท่านั้น

คำถาม: จะเกิดอะไรขึ้นหากฟังก์ชัน Lambda ของฉันผิดพลาดขณะประมวลผลเหตุการณ์

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

คำถาม: จะเกิดอะไรขึ้นหากการเรียกใช้ฟังก์ชัน Lambda ของฉันทำให้นโยบายที่มีอยู่หมดไป

เมื่อเกินนโยบายการลองใหม่สำหรับการเรียกแบบอะซิงโครนัส คุณสามารถกำหนดค่า "คิวที่ทำไม่สำเร็จ" (DLQ) ที่จะวางเหตุการณ์ ในกรณีที่ไม่มี DLQ ที่กำหนดเหตุการณ์อาจถูกปฏิเสธ เมื่อเกินนโยบายการลองใหม่สำหรับการเรียกตามสตรีม ข้อมูลจะหมดอายุและถูกปฏิเสธในที่สุด

คำถาม: ฉันสามารถกำหนดค่าทรัพยากรอะไรเป็นคิวที่ทำไม่สำเร็จสำหรับฟังก์ชัน Lambda ได้บ้าง

คุณสามารถกำหนดค่าคิว Amazon SQS หรือหัวข้อ Amazon SNS เป็นคิวที่ทำไม่สำเร็จได้


  Amazon EFS Amazon EBS (io1)
เวลาแฝงต่อการทำงาน ต่ำ สม่ำเสมอ ต่ำที่สุด สม่ำเสมอ
ระดับปริมาณการประมวลผล หลาย GB ต่อวินาที หนึ่ง GB ต่อวินาที

ลักษณะแบบกระจายของ Amazon EFS ช่วยให้มีความพร้อมใช้งานสูง ความทนทานสูง และความสามารถในการปรับขนาดในระดับสูง ส่งผลให้มีค่าใช้จ่ายแฝงเล็กน้อยสำหรับการดำเนินการแต่ละไฟล์ ในระดับเวลาแฝงต่อการทำงานนี้ ปริมาณการประมวลผลโดยรวมมักจะเพิ่มขึ้นตามขนาด I/O โดยเฉลี่ยที่เพิ่มขึ้น เนื่องจากค่าใช้จ่ายจะถูกตัดทอนลงตามปริมาณข้อมูลที่ใหญ่ขึ้น นอกจากนั้น Amazon EFS ยังรองรับปริมาณงานที่ทำงานพร้อมกันได้สูง (หรือการทำงานที่สม่ำเสมอจากหลายเธรดและ EC2 instance หลายรายการ) ช่วยให้มีระดับปริมาณการประมวลผลและ IOP โดยรวมที่สูง

ถาม: ประสิทธิภาพการอ่านที่ฉันคาดหวังได้จาก EFS คือเท่าใด

ระบบไฟล์ Amazon EFS มีเวลาแฝงในระดับต่ำกว่ามิลลิวินาทีสำหรับเมทาดาทา ตลอดจนข้อมูลที่อ่านได้ต่ำสุดถึง [XXX ไมโครวินาที (µs)] สำหรับระบบไฟล์จุดประสงค์ทั่วไปโดยใช้โหมดจุดประสงค์ทั่วไป ข้อมูลที่เข้าถึงบ่อยมีเวลาแฝงที่ต่ำถึง [xxx] ไมโครวินาที ข้อมูลที่เข้าถึงไม่บ่อยมีเวลาแฝงโดยเฉลี่ย [x] มิลลิวินาที

ถาม: การดำเนินการใดของ Amazon EFS ที่มีเวลาแฝงต่ำกว่าระดับมิลลิวินาที

80% ของเมทาดาทาและการอ่านข้อมูลมีเวลาแฝงระดับต่ำกว่ามิลลิวินาที รวมถึงการอ่านเมทาดาทาและข้อมูลขนาดเล็กสำหรับแอปพลิเคชันทั่วไปด้วย เวลาแฝงที่แน่นอนของคุณขึ้นอยู่กับรายละเอียดรูปแบบการเข้าถึงแอปพลิเคชันของคุณ

ถาม: ปริมาณงานใดบ้างที่ได้รับประโยชน์จากเวลาแฝงในการอ่านที่ต่ำกว่าระดับมิลลิวินาที

เวลาแฝงในการอ่านที่ต่ำกว่าระดับมิลลิวินาทีช่วยปรับปรุงประสิทธิภาพสำหรับหลายๆ แอปพลิเคชันได้ ตัวอย่างเช่น คุณสามารถลดเวลาในการโหลดหน้าเว็บสำหรับปริมาณงานการนำเสนอเว็บ เช่น WordPress และ Drupal, ลดเวลาในการสร้างในเวิร์กโฟลว์ Jenkins CI/CD และลดเวลาแฝงในการแยก แปลง และโหลดข้อมูล (ETL) สำหรับ Data Pipeline ที่จัดการโดย Apache Airflow

ถาม: ฉันจะรับเวลาแฝงในการอ่านระดับต่ำกว่ามิลลิวินาทีสำหรับระบบไฟล์ Amazon EFS ของฉันได้อย่างไร

ไม่จำเป็นต้องดำเนินการใดๆ ทั้งระบบไฟล์เดิมและระบบไฟล์ใหม่ที่ใช้โหมดจุดประสงค์ทั่วไปสำหรับคลาสพื้นที่จัดเก็บ EFS Standard และ EFS One Zone ต่างมีเวลาแฝงที่ต่ำกว่าระดับมิลลิวินาที โดยไม่ต้องมีการกำหนดค่าหรือค่าใช้จ่ายเพิ่มเติมใดๆ

ถาม: โหมดประสิทธิภาพ “จุดประสงค์ทั่วไป” และ “I/O สูงสุด” แตกต่างกันอย่างไร ฉันควรเลือกโหมดใด

โหมดประสิทธิภาพจุดประสงค์ทั่วไปเป็นโหมดเริ่มต้นที่เหมาะสมกับระบบไฟล์ส่วนใหญ่ โหมดประสิทธิภาพ “I/O สูงสุด” เหมาะสำหรับแอปพลิเคชันที่มี EC2 instance หลายสิบ หลายร้อย หรือหลายพันรายการเข้าถึงระบบไฟล์อยู่ ซึ่งจะปรับระดับปริมาณการประมวลผลโดยรวมให้สูงขึ้นและการทำงานต่อวินาทีที่มีเวลาแฝงสำหรับการทำงานของไฟล์สูงขึ้นเล็กน้อย ระบบไฟล์ที่ใช้คลาสพื้นที่จัดเก็บ One Zone รองรับเฉพาะโหมด “จุดประสงค์ทั่วไป” เท่านั้น ดูข้อมูลเพิ่มเติมที่เอกสารประกอบในส่วนประสิทธิภาพของระบบไฟล์

ถาม: ระบบไฟล์รองรับปริมาณการประมวลผลได้เท่าใด

โหมดปริมาณการประมวลผลความเร็วสูง คือ โหมดปริมาณการประมวลผลเริ่มต้นสำหรับระบบไฟล์ Amazon EFS ซึ่งจะช่วยปรับขนาดปริมาณการประมวลผลที่ใช้ได้กับระบบไฟล์ไปตามการขยายขนาดระบบไฟล์ เนื่องจากปริมาณงานที่อ้างอิงตามไฟล์มักจะมีความไม่แน่นอน ซึ่งต้องใช้ปริมาณการประมวลผลระดับสูงช่วงหนึ่งและใช้ปริมาณการประมวลผลระดับต่ำกว่าในช่วงเวลาที่เหลือ โดย EFS ได้รับการออกแบบมาเพื่อ "กระตุ้น" ให้มีปริมาณการประมวลผลระดับสูงในช่วงเวลาหนึ่ง นอกจากนั้น ด้วยปริมาณงานส่วนมากเป็นแบบการอ่านจำนวนมาก การดำเนินการอ่านจึงถูกวัดด้วยอัตราส่วน 1:3 ต่อการดำเนินการของระบบไฟล์เครือข่าย (NFS) อื่นๆ (เช่น การเขียน) ทุกระบบไฟล์มีประสิทธิภาพขั้นพื้นฐานที่สม่ำเสมอที่ 50 MB/วินาที ต่อพื้นที่จัดเก็บ EFS Standard หรือ EFS One Zone ระดับ TB โดยทุกระบบไฟล์ (ไม่ว่าขนาดใดก็ตาม) สามารถเพิ่มเป็น 100 MB/วินาที ได้

และทุกระบบไฟล์ที่ใหญ่กว่า 1TB ของ EFS Standard หรือ EFS One Zone สามารถเพิ่มเป็น 100 MB/วินาทีต่อ TB เนื่องจากการดำเนินการอ่านถูกวัดด้วยอัตราส่วน 1:3 คุณจึงสามารถผลักดันปริมาณการประมวลผลการอ่านได้สูงสุด 300 MiB/วินาทีต่อ TiB ปริมาณการประมวลสูงสุดที่ใช้ได้กับระบบไฟล์จะปรับเปลี่ยนไปตามพื้นที่จัดเก็บของคุณในพื้นที่จัดเก็บคลาสมาตรฐานของ Amazon EFS โดยอัตโนมัติและเป็นเชิงเส้น โดยอ้างอิงตามข้อมูลที่คุณเพิ่มลงในระบบไฟล์ หากคุณต้องการปริมาณการประมวลผลในจำนวนมากกว่าที่คุณได้รับจากปริมาณข้อมูลที่จัดเก็บ คุณสามารถกำหนดค่าปริมาณการประมวลผลที่เตรียมใช้งานได้ตามปริมาณเฉพาะที่ปริมาณงานของคุณต้องการ

ปริมาณการประมวลของระบบไฟล์จะแชร์ข้าม EC2 instance ทั้งหมดที่เชื่อมต่อกับระบบไฟล์ ตัวอย่างเช่น ระบบไฟล์ขนาด 1TB ที่เพิ่มปริมาณการประมวลเป็น 100 MB/วินาที สามารถกระตุ้นเป็น 100 MB/วินาที จาก EC2 instance เดี่ยวได้ หรืออินสแตนซ์ EC2 10 รายการสามารถกระตุ้นเป็น 10 MB/วินาที (100 MB/วินาที โดยรวม) ได้ ดูข้อมูลเพิ่มเติมที่เอกสารประกอบในส่วนประสิทธิภาพของระบบไฟล์

ถาม: ปริมาณการประมวลผลที่เตรียมใช้งานคืออะไรและควรใช้เมื่อใด

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

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

เลือกโหมดปริมาณการประมวลผลของระบบไฟล์ผ่าน AWS Management Console, AWS Command Line Interface (CLI) หรือ Amazon EFS API ดูรายละเอียดเพิ่มเติมที่เอกสารประกอบเกี่ยวกับปริมาณการประมวลผลที่เตรียมใช้งาน

ถาม: ปริมาณการประมวลผลที่เตรียมใช้งานของ Amazon EFS ทำงานอย่างไร

หากคุณเลือกปริมาณการประมวลผลที่เตรียมใช้งานสำหรับระบบไฟล์ของคุณ คุณสามารถจัดเตรียมปริมาณการประมวลผลของระบบไฟล์โดยไม่อ้างอิงจากปริมาณข้อมูลที่จัดเก็บไว้ได้และจ่ายค่าบริการสำหรับพื้นที่จัดเก็บและปริมาณการประมวลผลที่เตรียมใช้งานแยกกันได้ (เช่น 0.30 USD ต่อพื้นที่จัดเก็บมาตรฐานระดับ GB ต่อเดือน และ 6.00 USD สำหรับปริมาณการประมวลผลที่เตรียมใช้งาน MB/วินาที ต่อเดือนในสหรัฐอเมริกาฝั่งตะวันออก (เวอร์จิเนียเหนือ) จากการดำเนินการอ่านถูกวัดด้วยอัตราส่วน 1:3 คุณจึงสามารถผลักดันปริมาณการประมวลผลการอ่านได้สูงสุด 3 MiB/วินาที สำหรับปริมาณการประมวลผลที่เตรียมไว้ 1 MiB/วินาที แต่ละรายการ

นอกจากนั้น ปริมาณการประมวลผลที่เตรียมใช้งานยังรวมถึงปริมาณการประมวลผลที่ 50 KB/วินาที ต่อ GB (หรือ 1 MB/วินาที ต่อ 20 GB) ในราคาของพื้นจัดเก็บมาตรฐานของ Amazon EFS ตัวอย่างเช่น หากคุณจัดเก็บข้อมูลขนาด 20 GB เป็นเวลาหนึ่งเดือนบนคลาสพื้นที่จัดเก็บ Amazon EFS แบบมาตรฐานและกำหนดปริมาณการประมวลผลไว้ที่ 5 MB/วินาที เป็นเวลาหนึ่งเดือน คุณต้องจ่ายค่าบริการสำหรับพื้นที่จัดเก็บ 20 GB ต่อเดือนและปริมาณการประมวลผล 4 (5-1) MB/วินาที ต่อเดือน

ถาม: ฉันจะตรวจสอบการใช้ปริมาณการประมวลผลการอ่านและเขียนของฉันได้อย่างไร

คุณสามารถตรวจสอบปริมาณการประมวลผลของคุณได้โดยใช้ Amazon CloudWatch ตัววัด TotalIOBytes, ReadIOBytes, WriteIOBytes และ MetadataIOBytes จะแสดงปริมาณการประมวลผลตามจริงที่แอปพลิเคชันของของคุณผลักดันอยู่ ตัววัด PermittedThroughput และ MeteredIOBytes จะแสดงขีดจำกัดและการใช้งานปริมาณการประมวลผลที่วัดตามลำดับ หลังจากการวัดคำขอการอ่านที่อัตราส่วน 1:3 ต่อคำขออื่นๆ Amazon EFS Console ช่วยให้คุณสามารถใช้กราฟแสดงขีดจำกัดปริมาณการประมวลผลเป็นเปอร์เซ็นต์เพื่อตรวจสอบการใช้ปริมาณการประมวลผลของคุณ 

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

ถาม: ระบบจะคิดค่าบริการฉันในโหมดปริมาณการประมวลผลที่เตรียมใช้งานอย่างไร

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

  • พื้นที่จัดเก็บ (ต่อ GB ต่อเดือน): ระบบจะคิดค่าบริการคุณตามปริมาณพื้นที่จัดเก็บที่คุณใช้ในระดับ GB ต่อเดือน
  • ปริมาณการประมวลผล (ต่อ MB/วินาทีต่อเดือน): ระบบจะคิดค่าบริการคุณตามปริมาณการประมวลผลที่คุณจัดเตรียมไว้ในระดับ MB/วินาทีต่อเดือน

ถาม: ฉันสามารถเปลี่ยนปริมาณการประมวลที่เตรียมใช้งานของระบบไฟล์ของฉันได้บ่อยแค่ไหน

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

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

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

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

การรักษาความปลอดภัยและการควบคุมการเข้าถึง

คำถาม: ฉันจะอนุญาตให้ฟังก์ชัน AWS Lambda เข้าถึงทรัพยากร AWS อื่นๆ ได้อย่างไร

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

คำถาม: ฉันจะควบคุมว่าบัคเก็ตใดของ Amazon S3 จะเรียกใช้ฟังก์ชัน AWS Lambda ใดได้อย่างไร

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

คำถาม: ฉันจะควบคุมตาราง Amazon DynamoDB หรือสตรีม Amazon Kinesis ที่ฟังก์ชัน AWS Lambda สามารถสำรวจได้อย่างไร

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

คำถาม: ฉันจะควบคุมคิว Amazon SQS ที่ฟังก์ชัน AWS Lambda สามารถสำรวจได้อย่างไร

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

คำถาม: ฉันสามารถเข้าถึงทรัพยากรที่อยู่เบื้องหลัง Amazon VPC ด้วยฟังก์ชัน AWS Lambda ของฉันได้หรือไม่

ได้ คุณสามารถเข้าถึงทรัพยากรที่อยู่เบื้องหลัง Amazon VPC ได้

คำถาม: ฉันจะเปิดและปิดใช้งานการสนับสนุน VPC สำหรับฟังก์ชัน Lambda ของฉันได้อย่างไร

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

คำถาม: ฟังก์ชัน Lambda เดียวสามารถเข้าถึง VPC หลายตัวได้หรือไม่

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

คำถาม: ฟังก์ชัน Lambda ใน VPC สามารถเข้าถึงอินเทอร์เน็ตและตำแหน่งข้อมูลบริการของ AWS ได้หรือไม่

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

คำถาม: การลงชื่อโค้ดสำหรับ AWS Lambda คืออะไร

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

คำถาม: ฉันจะสร้างตัวโค้ดที่มีการลงชื่อดิจิทัลได้อย่างไร

คุณสามารถสร้างตัวโค้ดที่มีการลงชื่อแบบดิจิทัลได้โดยใช้โปรไฟล์การลงชื่อผ่านทาง AWS Signer Console, Signer API, SAM CLI หรือ AWS CLI หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่เอกสารประกอบสำหรับ AWS Signer

คำถาม: ฉันจะกำหนดค่าฟังก์ชัน Lambda ให้สามารถใช้งานการลงชื่อโค้ดได้อย่างไร

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

คำถาม: AWS Lambda ดำเนินการตรวจสอบลายเซ็นอย่างไรเมื่อมีการปรับใช้

AWS Lambda จะดำเนินการตรวจสอบลายเซ็นดังต่อไปนี้เมื่อมีการปรับใช้

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

หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่เอกสารประกอบสำหรับ AWS Lambda

คำถาม: ฉันสามารถเปิดใช้การลงชื่อโค้ดสำหรับฟังก์ชันที่มีอยู่ได้หรือไม่

ได้ คุณสามารถเปิดใช้การลงชื่อโค้ดสำหรับฟังก์ชันที่มีอยู่ได้โดยแนบติดกากรำหนดค่าการลงชื่อโค้ดเข้ากับฟังก์ชัน สามารถทำได้โดยใช้แผงควบคุมของ AWS Lambda, Lambda API, AWS CLI, AWS CloudFormation และ AWS SAM

คำถาม: มีค่าใช้จ่ายเพิ่มเติมสำหรับการใช้การลงชื่อโค้ดสำหรับ AWS Lambda หรือไม่

ไม่มีค่าใช้จ่ายเพิ่มเติมเมื่อใช้การลงชื่อโค้ดสำหรับ AWS Lambda คุณเพียงชำระเงินในราคามาตรฐานสำหรับการใช้ AWS Lambda ก็พอ หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่ราคา

ฟังก์ชัน AWS Lambda ใน Java

คำถาม: ฉันจะคอมไพล์โค้ด Java ของฟังก์ชัน AWS Lambda ได้อย่างไร

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

คำถาม: สภาพแวดล้อม JVM แบบใดที่ Lambda ใช้สำหรับการดำเนินการฟังก์ชันของฉัน

Lambda มาพร้อมบิลด์ Amazon Linux ของ openjdk 1.8

ฟังก์ชัน AWS Lambda ใน Node.js

คำถาม: ฉันสามารถใช้แพคเกจกับ AWS Lambda ได้หรือไม่

ได้ คุณสามารถใช้แพคเกจ NPM และแพคเกจที่กำหนดเองได้ เรียนรู้เพิ่มเติมที่นี่

คำถาม: ฉันสามารถดำเนินการโปรแกรมอื่นจากภายในฟังก์ชัน AWS Lambda ที่เขียนใน Node.js ได้หรือไม่

ได้ โปรแกรมทดสอบใน Lambda ช่วยให้คุณสามารถเรียกใช้ชุด ("เชลล์") สคริปต์ รันไทม์ภาษาอื่นๆ ชุดคำสั่งยูทิลิตี และไฟล์ปฏิบัติการ เรียนรู้เพิ่มเติมที่นี่

คำถาม: สามารถใช้โมดูลดั้งเดิมกับฟังก์ชัน AWS Lambda ที่เขียนใน Node.js ได้หรือไม่

ได้ โมดูลเนทีฟที่เชื่อมโยงแบบคงที่สามารถรวมอยู่ในไฟล์ ZIP ที่คุณอัปโหลด รวมทั้งโมดูลที่เชื่อมโยงแบบไดนามิกที่คอมไพล์ด้วย rpath ที่ชี้ไปยังไดเรกทอรีรากของ Lambda เรียนรู้เพิ่มเติมที่นี่

คำถาม: ฉันสามารถดำเนินการไบนารีที่มี AWS Lambda เขียนใน Node.js ได้หรือไม่

ได้ คุณสามารถใช้คำสั่ง child_process ของ Node.js เพื่อดำเนินการไบนารีที่คุณรวมไว้ในฟังก์ชันหรือไฟล์ปฏิบัติการใดๆ จาก Amazon Linux ที่สามารถมองเห็นได้จากฟังก์ชันของคุณ หรืออีกหลายแพ็กเกจ NPM ที่มีอยู่ที่ตัดไบนารีบรรทัดคำสั่ง เช่น node-ffmpeg เรียนรู้เพิ่มเติมที่นี่

คำถาม: ฉันจะปรับใช้โค้ดฟังก์ชัน AWS Lambda ที่เขียนใน Node.js ได้อย่างไร

หากต้องการใช้ฟังก์ชัน Lambda ที่เขียนขึ้นใน Node.js เพียงแค่คุณใส่โค้ด Javascript และไลบรารีที่อ้างอิงเป็นไฟล์ ZIP คุณสามารถอัปโหลดไฟล์ ZIP จากสภาพแวดล้อมท้องถิ่นของคุณหรือระบุตำแหน่งที่ตั้ง Amazon S3 ที่มีไฟล์ ZIP อยู่ สำหรับรายละเอียดเพิ่มเติม โปรดดูเอกสารประกอบของเรา

ฟังก์ชัน AWS Lambda ใน Python

คำถาม: ฉันสามารถใช้แพคเกจ Python กับ AWS Lambda ได้หรือไม่

ได้ คุณสามารถใช้ pip เพื่อติดตั้งแพคเกจ Python ที่จำเป็นได้

ฟังก์ชัน AWS Lambda ใน C#

คำถาม: ฉันจะจัดแพคเกจและปรับใช้ฟังก์ชัน AWS Lambda ใน C # ได้อย่างไร

คุณสามารถสร้างฟังก์ชัน C# Lambda โดยใช้ Visual Studio IDE โดยเลือก "เผยแพร่ไปที่ AWS Lambda" ใน Solution Explorer หรือคุณสามารถเรียกใช้คำสั่ง "dotnet lambda publish" โดยตรงจาก dotnet CLI ที่มีการติดตั้ง [แพทช์เครื่องมือ # Lambda CLI] ซึ่งจะสร้าง ZIP ของซอร์สโค้ด C# ของคุณพร้อมกับการอ้างอิงทั้งหมดของ NuGet และการรวบรวม DLL ที่เผยแพร่ของคุณเอง และจะอัปโหลดไปยัง AWS Lambda โดยอัตโนมัติโดยใช้พารามิเตอร์รันไทม์ "dotnetcore1.0"

ฟังก์ชัน AWS Lambda ใน PowerShell

ถาม: ฉันจะปรับใช้งานโค้ดฟังก์ชัน AWS Lambda ที่เขียนใน PowerShell ได้อย่างไร

แพคเกจการปรับใช้งาน PowerShell Lambda เป็นไฟล์ ZIP ที่ประกอบด้วยสคริปต์ PowerShell, โมดูล PowerShell ที่จำเป็นสำหรับสคริปต์ PowerShell และการผนวกรวมที่จำเป็นต่อการโฮสต์ PowerShell Core จากนั้นใช้โมดูล AWSLambdaPSCore PowerShell ที่คุณสามารถติดตั้งได้จากPowerShell Gallery เพื่อสร้างแพคเกจการปรับใช้งาน PowerShell Lambda

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

ฟังก์ชัน AWS Lambda ใน Go

ถาม: ฉันจะจัดแพคเกจและปรับใช้งานฟังก์ชัน AWS Lambda ใน Go ได้อย่างไร 

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

ฟังก์ชัน AWS Lambda ใน Ruby

ถาม: ฉันจะปรับใช้งานโค้ดฟังก์ชัน AWS Lambda ที่เขียนใน Ruby ได้อย่างไร 

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

ขนาดและประสิทธิภาพ

ถาม: ฉันสามารถจัดเก็บข้อมูลได้มากเท่าใด

คุณสามารถจัดเก็บข้อมูลได้หลายเพตะไบต์ด้วย Amazon Elastic File System (Amazon EFS) ระบบไฟล์ Amazon EFS นั้นยืดหยุ่น และจะขยายและย่อขนาดโดยอัตโนมัติเมื่อคุณเพิ่มและลบไฟล์ โดยไม่จำเป็นต้องจัดเตรียมขนาดระบบไฟล์ล่วงหน้า และคุณจ่ายเฉพาะส่วนที่คุณใช้เท่านั้น

ถาม: สามารถเชื่อมต่อ Amazon EC2 instance กับระบบไฟล์ได้กี่รายการ

Amazon EFS รองรับการเชื่อมต่ออินสแตนซ์ Amazon Elastic Compute Cloud (EC2) กับระบบไฟล์ตั้งแต่หนึ่งถึงหลายพันรายการพร้อมกัน

ถาม: ฉันสามารถสร้างระบบไฟล์ได้กี่รายการ

คุณสามารถสร้างระบบไฟล์ได้สูงสุด 1,000 รายการต่อรีเจี้ยน ดูข้อมูลเกี่ยวกับขีดจำกัดของ Amazon EFS ได้ที่หน้าขีดจำกัดของ Amazon EFS

ถาม: Amazon EFS มีประสิทธิภาพเป็นอย่างไรเมื่อเทียบกับโซลูชันพื้นที่จัดเก็บอื่น

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

ซึ่งช่วยให้แอปพลิเคชันแบบมัลติเธรดและแอปพลิเคชันที่เข้าถึงข้อมูลจากอินสแตนซ์การประมวลผลและฟังก์ชัน Lambda หลายรายการพร้อมกันสามารถกระตุ้นระดับปริมาณการประมวลผลและการดำเนินการ I/O ต่อวินาที (IOPS) โดยรวมได้อย่างมาก ตัวอย่างแอปพลิเคชัน ได้แก่ ปริมาณงาน Big Data และการวิเคราะห์, เวิร์กโฟลว์การประมวลผลสื่อ, การจัดการเนื้อหา และการนำเสนอเว็บ

ตารางด้านล่างนี้จะเปรียบเทียบประสิทธิภาพระดับสูงและคุณลักษณะเฉพาะของพื้นที่จัดเก็บสำหรับพื้นที่จัดเก็บบล็อกบนระบบคลาวด์และไฟล์ของ AWS

หัวข้ออื่นๆ

คำถาม: AWS Lambda สนับสนุน Amazon Linux, Node.js, Python, JDK, .NET Core, SDK และไลบรารีเพิ่มเติมเวอร์ชันใด

คุณสามารถดูรายการเวอร์ชันที่สนับสนุนได้ที่นี่

คำถาม: ฉันสามารถเปลี่ยนเวอร์ชันของ Amazon Linux หรือรันไทม์ภาษาได้หรือไม่

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

คำถาม: ฉันจะบันทึกและตรวจสอบการเรียกใช้ที่ทำกับ AWS Lambda API ได้อย่างไร

AWS Lambda ถูกผสานรวมกับ AWS CloudTrail AWS CloudTrail สามารถบันทึกและส่งไฟล์บันทึกไปยังบัคเก็ต Amazon S3 ของคุณซึ่งอธิบายถึงการใช้ API ของบัญชีของคุณ

คำถาม: ฉันจะประสานงานการเรียกใช้ระหว่างหลายฟังก์ชัน Lambda ได้อย่างไร

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

คำถาม: AWS Lambda รองรับ Advanced Vector Extensions 2 (AVX2) หรือไม่

รองรับ AWS Lambda รองรับชุดคำสั่ง Advanced Vector Extensions 2 (AVX2) หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีรวมโค้ดแอปพลิเคชันของคุณเพื่อกำหนดเป้าหมายชุดคำสั่งนี้เพื่อให้มีประสิทธิภาพยิ่งขึ้น โปรดดูที่เอกสารประกอบสำหรับนักพัฒนา AWS Lambda

เรียนรู้เพิ่มเติมเกี่ยวกับราคา AWS Lambda

ไปที่หน้าราคา
พร้อมเริ่มต้นใช้งานหรือยัง
ลงชื่อสมัครใช้งาน
มีคำถามเพิ่มเติมหรือไม่
ติดต่อเรา