บทช่วยสอน AWS Lambda สำหรับผู้เริ่มต้น: บทช่วยสอนที่สมบูรณ์

เผยแพร่แล้ว: 2021-11-24

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

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

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

สารบัญ

AWS Lambda

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

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

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

การทำงานของ AWS Lambda

AWS Lambda ทำงานในลักษณะต่อไปนี้:

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

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

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

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

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

AWS: ส่วนสำคัญของคอมพิวเตอร์ไร้เซิร์ฟเวอร์

สำหรับการทำ Serverless Slack ให้เสร็จสิ้น ข้อกำหนดคือ:

  • บริการคอมพิวเตอร์
  • บริการฐานข้อมูล
  • บริการเกตเวย์เช่น HTTP

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

ข้อดีของ AWS Lambda

มีข้อดีบางประการที่ AWS Lambda มีให้เหนือเซิร์ฟเวอร์อื่นๆ ที่ได้รับการดูแลในระบบคลาวด์

1. จ่ายต่อการใช้งาน

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

2. โครงสร้างพื้นฐานที่มีการจัดการเต็มรูปแบบ

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

3. ปรับขนาดอัตโนมัติ

อินสแตนซ์ของฟังก์ชันจะถูกสร้างขึ้นโดยอัตโนมัติตามที่ร้องขอใน AWS

4. การผสานรวมกับบริการอื่นๆ ใน AWS

บริการต่างๆ เช่น DynamDB, API เกตเวย์, S3 สามารถผสานรวมกับ AWS Lambda

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

  • งานจะดำเนินการในระยะเวลาที่สั้นกว่าเมื่อเทียบกับระบบคลาวด์คอมพิวติ้งแบบเดิม
  • งานส่วนใหญ่มีอยู่ในตัวเอง

บางกรณีของการใช้ API ทั่วไป ได้แก่:

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

ภาษาการเขียนโปรแกรมที่รองรับโดย AWS

แพลตฟอร์ม AWS รองรับภาษายอดนิยมมากมาย ด้านล่างนี้คือรายการภาษาที่แพลตฟอร์มรองรับ:

  • Node.js 8.10
  • Node.js 10.x
  • Node.js 12.x
  • Python 2.7
  • Python 3.6
  • Python 3.7
  • Python 3.8
  • ทับทิม 2.5
  • Java8
  • Java 11
  • ไป 1.x
  • C# — .NET Core 1.0
  • C# — .NET Core 2.1
  • PowerShell Core 6.0

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

บทช่วยสอน AWS Lambda

1. บัญชีของ AWS

นี่เป็นสิ่งแรกที่ต้องสร้างเพื่อสร้างฟังก์ชัน Lambda

2. การสร้างแลมบ์ดา

สามารถตั้งค่าฟังก์ชันได้เมื่อลูกค้าอยู่ในคอนโซล ให้ใช้รายการ "Lambda" ใต้เมนู "compute"

3. เสร็จสิ้นการสร้างแลมบ์ดา

การเขียนโปรแกรม Python ใช้สำหรับป้อนรหัสในคอนโซล

4. การกำหนดค่าฟังก์ชัน

ฟังก์ชั่นจะต้องถูกสร้างขึ้น

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

บทสรุป

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

เป็นปรมาจารย์ด้านการพัฒนาซอฟต์แวร์

สมัครเลยตอนนี้สำหรับวิทยาศาสตรมหาบัณฑิตสาขาวิทยาการคอมพิวเตอร์จาก Liverpool John Moores