บทช่วยสอน AWS Lambda: คำแนะนำของคุณสำหรับ Amazon Serverless Computing



AWS Lambda Tutorial นี้อธิบายถึง Serverless Compute Platform ของ AWS ซึ่งครอบคลุมรายละเอียดเกี่ยวกับฟังก์ชัน Lambda, Event Source, Lambda Pricing พร้อมกรณีการใช้งาน

บทแนะนำ AWS Lambda

วันนี้เราจะมาพูดถึง AWS Lambda AWS Lambda เป็นบริการประมวลผลที่นำเสนอโดย Amazon คุณต้องสงสัยเพราะมีบริการประมวลผลอื่น ๆ จาก AWS เช่น AWS EC2, AWS Elastic Beanstalk, AWS Opsworks เป็นต้นแล้วทำไมต้องมีบริการประมวลผลอื่น ๆ ในบทช่วยสอน AWS Lambda นี้คุณจะพบว่า AWS Lambda คืออะไรทำไมจึงใช้และในกรณีการใช้งานที่คุณควรพิจารณา

มาดูกันว่า Amazon นิยาม AWS Lambda อย่างไรจากนั้นเราจะเจาะลึกแนวคิดหลักทำความเข้าใจกรณีการใช้งานด้วยมือในตอนท้าย





Lambda Serverless Computing - AWS Lambda Tutorial

AWS Lambda คืออะไร

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



ฉันจะใช้ AWS Lambda ที่ใด

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

แล้วมันทำงานอย่างไร?

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

มาดูตัวอย่างเพื่อให้เข้าใจชัดเจนยิ่งขึ้น



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

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

ในตัวอย่างนี้นักพัฒนาเพียงแค่กำหนดแหล่งที่มาของเหตุการณ์และอัปโหลดโค้ด

มาทำความเข้าใจกับตัวอย่างนี้ด้วยทรัพยากรจริงของ AWS ในตอนนี้

มะเดื่อกรณีการใช้งาน Lambda กับ S3

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

กระบวนการทั้งหมดดังที่คุณเห็นในแผนภาพแบ่งออกเป็น 5 ขั้นตอนเรามาทำความเข้าใจแต่ละขั้นตอนกัน

  1. ผู้ใช้อัปโหลดรูปภาพ (วัตถุ) ไปยังที่เก็บข้อมูลต้นทางใน S3 ซึ่งมีการแจ้งเตือนแนบมาด้วยสำหรับ Lambda
  2. S3 จะอ่านการแจ้งเตือนและจะตัดสินใจว่าจะส่งการแจ้งเตือนนั้นไปที่ใด
  3. S3 ส่งการแจ้งเตือนไปยังแลมบ์ดาการแจ้งเตือนนี้จะทำหน้าที่เรียกใช้ฟังก์ชันแลมบ์ดา
  4. บทบาทการดำเนินการใน Lambda สามารถกำหนดได้โดยใช้ IAM (Identity and Access Management) เพื่อให้สิทธิ์การเข้าถึงสำหรับทรัพยากร AWS สำหรับตัวอย่างนี้จะเป็น S3
  5. สุดท้ายจะเรียกใช้ฟังก์ชันแลมด้าที่ต้องการซึ่งทำงานกับวัตถุที่อัปโหลดไปยังที่เก็บ 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 ได้ที่ ร่วมสร้างโดยผู้ปฏิบัติงานในอุตสาหกรรม.

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป.