บทแนะนำ AWS Lambda
วันนี้เราจะมาพูดถึง AWS Lambda AWS Lambda เป็นบริการประมวลผลที่นำเสนอโดย Amazon คุณต้องสงสัยเพราะมีบริการประมวลผลอื่น ๆ จาก AWS เช่น AWS EC2, AWS Elastic Beanstalk, AWS Opsworks เป็นต้นแล้วทำไมต้องมีบริการประมวลผลอื่น ๆ ในบทช่วยสอน AWS Lambda นี้คุณจะพบว่า AWS Lambda คืออะไรทำไมจึงใช้และในกรณีการใช้งานที่คุณควรพิจารณา
มาดูกันว่า Amazon นิยาม AWS Lambda อย่างไรจากนั้นเราจะเจาะลึกแนวคิดหลักทำความเข้าใจกรณีการใช้งานด้วยมือในตอนท้าย
AWS Lambda คืออะไร
Amazon อธิบายว่า AWS Lambda (& lambda) เป็นบริการประมวลผลแบบ 'ไร้เซิร์ฟเวอร์' ซึ่งหมายความว่านักพัฒนาไม่ต้องกังวลว่าจะเปิดใช้ทรัพยากร AWS ใดหรือจะจัดการอย่างไรพวกเขาเพียงแค่วางโค้ดบนแลมบ์ดาแล้วรัน มันง่ายมาก! ช่วยให้คุณมุ่งเน้นไปที่ความสามารถหลักเช่นการสร้างแอปหรือรหัส
ฉันจะใช้ AWS Lambda ที่ใด
AWS Lambda รันโค้ดแบ็กเอนด์ของคุณโดยจัดการทรัพยากร AWS โดยอัตโนมัติ เมื่อเราพูดว่า 'จัดการ' จะรวมถึงการเปิดหรือยกเลิกอินสแตนซ์การตรวจสุขภาพการปรับขนาดอัตโนมัติการอัปเดตหรือการแก้ไขการอัปเดตใหม่ ๆ เป็นต้น
แล้วมันทำงานอย่างไร?
รหัสที่คุณต้องการให้ Lambda เรียกใช้เรียกว่า a ฟังก์ชัน Lambda . ทีนี้อย่างที่เราทราบกันดีว่าฟังก์ชันจะทำงานเฉพาะเมื่อถูกเรียกใช่ไหม? ที่นี่ แหล่งที่มาของเหตุการณ์ เป็นเอนทิตีที่ทริกเกอร์ฟังก์ชันแลมบ์ดาจากนั้นงานจะถูกดำเนินการ
มาดูตัวอย่างเพื่อให้เข้าใจชัดเจนยิ่งขึ้น
สมมติว่าคุณมีแอพสำหรับอัพโหลดรูปภาพ ตอนนี้เมื่อคุณอัปโหลดภาพมีงานมากมายที่เกี่ยวข้องก่อนที่จะจัดเก็บเช่นการปรับขนาดการใช้ตัวกรองการบีบอัด ฯลฯ
ดังนั้นงานในการอัปโหลดรูปภาพนี้สามารถกำหนดเป็นไฟล์ แหล่งที่มาของเหตุการณ์ หรือ 'ทริกเกอร์' ที่จะเรียกฟังก์ชันแลมบ์ดาจากนั้นงานทั้งหมดเหล่านี้สามารถดำเนินการผ่านฟังก์ชันแลมด้า
ในตัวอย่างนี้นักพัฒนาเพียงแค่กำหนดแหล่งที่มาของเหตุการณ์และอัปโหลดโค้ด
มาทำความเข้าใจกับตัวอย่างนี้ด้วยทรัพยากรจริงของ AWS ในตอนนี้
มะเดื่อกรณีการใช้งาน Lambda กับ S3
ที่นี่เราจะอัปโหลดภาพในรูปแบบของวัตถุไปยังถัง S3 การอัปโหลดภาพไปยังที่เก็บข้อมูล S3 นี้จะกลายเป็นแหล่งที่มาของเหตุการณ์หรือ 'ทริกเกอร์'
กระบวนการทั้งหมดดังที่คุณเห็นในแผนภาพแบ่งออกเป็น 5 ขั้นตอนเรามาทำความเข้าใจแต่ละขั้นตอนกัน
- ผู้ใช้อัปโหลดรูปภาพ (วัตถุ) ไปยังที่เก็บข้อมูลต้นทางใน S3 ซึ่งมีการแจ้งเตือนแนบมาด้วยสำหรับ Lambda
- S3 จะอ่านการแจ้งเตือนและจะตัดสินใจว่าจะส่งการแจ้งเตือนนั้นไปที่ใด
- S3 ส่งการแจ้งเตือนไปยังแลมบ์ดาการแจ้งเตือนนี้จะทำหน้าที่เรียกใช้ฟังก์ชันแลมบ์ดา
- บทบาทการดำเนินการใน Lambda สามารถกำหนดได้โดยใช้ IAM (Identity and Access Management) เพื่อให้สิทธิ์การเข้าถึงสำหรับทรัพยากร AWS สำหรับตัวอย่างนี้จะเป็น S3
- สุดท้ายจะเรียกใช้ฟังก์ชันแลมด้าที่ต้องการซึ่งทำงานกับวัตถุที่อัปโหลดไปยังที่เก็บ S3
หากคุณต้องแก้ไขสถานการณ์นี้ตามปกติควบคู่ไปกับการพัฒนาคุณจะต้องจ้างคนมาจัดการงานต่อไปนี้:
- ขนาดจัดเตรียมและขยายกลุ่มของเซิร์ฟเวอร์
- การจัดการการอัปเดต OS
- ใช้แพตช์ความปลอดภัยและ
- ตรวจสอบโครงสร้างพื้นฐานทั้งหมดนี้เพื่อประสิทธิภาพและความพร้อมใช้งาน
นี่อาจเป็นงานที่มีราคาแพงน่าเบื่อและน่าเบื่อดังนั้นความต้องการ AWS Lambda จึงเป็นสิ่งที่สมเหตุสมผลAWS Lambda เข้ากันได้กับ Node.JS, Python และ Java ดังนั้นคุณสามารถอัปโหลดไฟล์ของคุณในรูปแบบ zip กำหนดแหล่งที่มาของเหตุการณ์และคุณก็พร้อมแล้ว!
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ S3 AWS เพื่อความเข้าใจที่ลึกซึ้งยิ่งขึ้น
ตอนนี้เรารู้แล้ว -แลมด้าทำงานอย่างไรและแลมด้าดอยอะไร เอส .
นเอาล่ะมาทำความเข้าใจกัน -
- ใช้แลมด้าที่ไหน?
- แลมด้าทำหน้าที่อะไรนั่นบริการ AWS Compute อื่น ๆ ไม่ใช่หรือ
หากคุณจะออกแบบวิธีแก้ปัญหาคุณควรระบุตำแหน่งที่จะใช้ Lambda ได้ใช่ไหม?
ดังนั้นในฐานะสถาปนิกคุณมีตัวเลือกต่อไปนี้ในการดำเนินงาน:
- AWS EC2
- AWS Elastic Beanstalk
- AWS OpsWorks
- AWS Lambda
ลองใช้กรณีการใช้งานข้างต้นเป็นตัวอย่างและทำความเข้าใจว่าเหตุใดเราจึงเลือก Lambda เพื่อแก้ปัญหานี้
คลาสที่ไม่แน่นอนในตัวอย่าง java
AWS OpsWorks และ AWS ElasticBeanstalk ใช้เพื่อปรับใช้แอปดังนั้นกรณีการใช้งานของเราคือ ไม่ เพื่อสร้างแอป , แต่จะรันโค้ดส่วนหลัง
แล้วทำไมไม่ EC2?
หากคุณจะใช้ EC2 คุณจะต้องออกแบบทุกอย่างเช่นโหลดบาลานเซอร์ไดรฟ์ข้อมูล EBS สแต็กซอฟต์แวร์ ฯลฯ ในแลมบ์ดาคุณไม่ต้องกังวลอะไรเลยเพียงแค่ใส่โค้ดของคุณแล้ว AWS จะจัดการส่วนที่เหลือ!
ตัวอย่างเช่น ใน EC2 คุณจะต้องติดตั้งแพ็คเกจซอฟต์แวร์บนเครื่องเสมือนของคุณซึ่งจะรองรับโค้ดของคุณ แต่ใน Lambda คุณไม่ต้องกังวลเกี่ยวกับ VM ใด ๆ เพียงแค่ใส่โค้ดธรรมดาแล้ว Lambda จะดำเนินการให้คุณ
แต่หากโค้ดของคุณทำงานเป็นเวลาหลายชั่วโมงและคุณคาดหวังว่าจะมีการร้องขออย่างต่อเนื่องคุณควรใช้ EC2 เนื่องจากสถาปัตยกรรมของแลมบ์ดามีไว้สำหรับปริมาณงานแบบประปรายซึ่งจะมีชั่วโมงที่เงียบและมีการเพิ่มขึ้นอย่างรวดเร็ว ในเลขที่ ของคำขอเช่นกัน
ตัวอย่างเช่น บันทึกกิจกรรมอีเมลเพื่อบอกว่า บริษัท เล็ก ๆ จะเห็นกิจกรรมในระหว่างวันมากกว่าในตอนกลางคืนและอาจมีหลายวันที่มีอีเมลที่ต้องดำเนินการน้อยกว่าและบางครั้งคนทั้งโลกก็เริ่มส่งอีเมลถึงคุณ! ในทั้งสองกรณี Lambda พร้อมให้บริการคุณ
เมื่อพิจารณาถึงกรณีการใช้งานนี้สำหรับ บริษัท เครือข่ายสังคมรายใหญ่ที่อีเมลไม่สิ้นสุดเนื่องจากมีฐานผู้ใช้จำนวนมากแลมด้าอาจไม่ใช่ทางเลือกที่เหมาะสม
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ EC2 AWS เพื่อความเข้าใจที่ลึกซึ้งยิ่งขึ้น
ข้อ จำกัด ของ AWS Lambda
ข้อ จำกัด บางประการเป็นข้อ จำกัด เฉพาะของฮาร์ดแวร์และบางส่วนเกี่ยวข้องกับสถาปัตยกรรมเรามาดูข้อ จำกัด ทั้งหมดกัน
ข้อ จำกัด ของฮาร์ดแวร์ รวมขนาดดิสก์ซึ่ง จำกัด ไว้ที่ 512 MB หน่วยความจำอาจแตกต่างกันไประหว่าง 128 MB ถึง 1536 MB จากนั้นมีบางส่วนอื่น ๆ เช่นการหมดเวลาดำเนินการสามารถขยายให้ใหญ่สุดได้เพียง 5 นาทีส่วนเนื้อหาคำขอของคุณต้องมีขนาดไม่เกิน 6 MB และเนื้อหาคำขอของคุณคือ 128 KB เพย์โหลดเนื้อหาของคำขอก็เหมือนกับข้อมูลที่คุณส่งพร้อมกับคำขอ 'GET' หรือ 'PUT' ใน HTTP โดยที่เนื้อหาคำขอจะเป็นประเภทของคำขอส่วนหัวเป็นต้น
ความแตกต่างระหว่างการโอเวอร์โหลดและการแทนที่ใน java
อันที่จริงสิ่งเหล่านี้ไม่ใช่ข้อ จำกัด แต่เป็นขอบเขตการออกแบบที่กำหนดไว้ในสถาปัตยกรรมของ Lambda ดังนั้นหากกรณีการใช้งานของคุณไม่ตรงกับสิ่งเหล่านี้คุณจะมีบริการประมวลผล AWS อื่น ๆ ตามที่คุณต้องการ
เราได้พูดคุยกันในบทช่วยสอน AWS Lambda ว่าการทำงานใน Lambda นั้น“ ไม่” น่าเบื่อและน่าเบื่อ ตอนนี้เราจะครอบคลุมส่วนของค่าใช้จ่ายด้วย
ราคาใน AWS Lambda
เช่นเดียวกับบริการ AWS ส่วนใหญ่ AWS Lambda ยังเป็นบริการแบบจ่ายต่อการใช้งานซึ่งหมายความว่าคุณจะจ่ายเฉพาะสิ่งที่คุณใช้เท่านั้นดังนั้นคุณจะถูกเรียกเก็บเงินตามพารามิเตอร์ต่อไปนี้
- จำนวน คำขอ ที่คุณทำกับฟังก์ชันแลมด้าของคุณ
- ระยะเวลา ซึ่งรหัสของคุณดำเนินการ
คำขอ
- คุณจะถูกเรียกเก็บเงินตามจำนวนคำขอที่คุณทำในฟังก์ชันแลมด้าทั้งหมดของคุณ
- AWS Lambda จะนับคำขอทุกครั้งที่เริ่มดำเนินการเพื่อตอบสนองต่อแหล่งที่มาของเหตุการณ์หรือเรียกใช้การเรียกรวมถึงการทดสอบจะถูกเรียกจากคอนโซล มาดูราคากันเลย:
- คำขอ 1 ล้านรายการแรกทุกเดือนฟรี
- 0.20 $ ต่อล้านคำขอหลังจากนั้น
ระยะเวลา
- ระยะเวลาคำนวณจากช่วงเวลาที่โค้ดของคุณเริ่มทำงานจนถึงช่วงเวลาที่ส่งคืนหรือสิ้นสุดจะถูกปัดเศษขึ้นเป็น 100ms ที่ใกล้ที่สุด
- ราคาขึ้นอยู่กับจำนวนหน่วยความจำที่คุณจัดสรรให้กับฟังก์ชันของคุณคุณจะถูกเรียกเก็บเงิน 0.00001667 USD สำหรับทุกๆ GB วินาทีที่ใช้
* ที่มา: เว็บไซต์อย่างเป็นทางการของ AWS
หากคุณมาถึงที่นี่คุณก็พร้อมสำหรับ Hands-on ใน Lambda มาสนุกกันเถอะ!
Hands-on: AWS Lambda DIY
มาสร้างฟังก์ชัน Lambda ซึ่งจะบันทึกว่า“ มีการเพิ่มวัตถุ” เมื่อคุณเพิ่มวัตถุลงในที่เก็บข้อมูลเฉพาะใน S3
ขั้นตอนที่ 1: จาก AWS Management Console ในส่วนการประมวลผลให้เลือก AWS Lambda
ขั้นตอนที่ 2: บน AWS Lambda Console ให้คลิกที่“ สร้างฟังก์ชัน Lambda”
ขั้นที่ 3: ในหน้าถัดไปคุณต้องเลือกพิมพ์เขียว ตัวอย่างเช่นเราจะเลือกฟังก์ชันว่างสำหรับกรณีการใช้งานของเรา
ขั้นตอนที่ 4: ในหน้าถัดไปคุณจะ (1) ตั้งค่าทริกเกอร์เนื่องจากเรากำลังจะทำงานกับ S3 (2) เลือกทริกเกอร์ S3 จากนั้น (3) คลิกถัดไป
ขั้นที่ 5: ในหน้าการกำหนดค่าให้กรอกรายละเอียด คุณสามารถใส่รหัสของคุณเองหรือคุณสามารถคัดลอกรหัสเดียวกันจากกรณีการใช้งานนี้ หลังจากนั้นกรอกตัวจัดการและบทบาทปล่อยให้การตั้งค่าขั้นสูงเหมือนเดิมในท้ายที่สุดคลิกถัดไป
ขั้นที่ 6: ในหน้าถัดไปตรวจสอบข้อมูลทั้งหมดและคลิกที่“ สร้างฟังก์ชัน”
ขั้นที่ 7: ตอนนี้เนื่องจากเราได้สร้างฟังก์ชันสำหรับบัคเก็ต S3 เมื่อคุณเพิ่มไฟล์ลงในบัคเก็ต S3 ของคุณคุณควรได้รับบันทึกสำหรับสิ่งเดียวกันใน CloudWatch ซึ่งเป็นบริการตรวจสอบจาก AWS
ยินดีด้วย!คุณเรียกใช้ฟังก์ชันแลมด้าสำเร็จแล้ว
ฉันหวังว่าคุณจะสนุกกับการเจาะลึกใน AWS Lambda Tutorial เป็นหนึ่งในพื้นที่ความรู้ที่ต้องการมากที่สุดในระบบนิเวศ AWS สำหรับตำแหน่งงานเช่น Solutions Architect, Cloud Engineer, DevOps Engineer นี่คือชุดของ เพื่อช่วยคุณเตรียมความพร้อมสำหรับการสัมภาษณ์งาน AWS ครั้งต่อไป
หากคุณพบว่า AWS Lambda Tutorial นี้เกี่ยวข้องคุณสามารถดูหลักสูตรสดและนำโดยผู้สอนของ Edureka ได้ที่ ร่วมสร้างโดยผู้ปฏิบัติงานในอุตสาหกรรม.
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป.