ข้อมูลเบื้องต้นเกี่ยวกับ Amazon API Gateway โดยใช้ AWS Lambda

ข้อมูลเบื้องต้นเกี่ยวกับ Amazon API Gateway โดยใช้ AWS Lambda

โหนดต้นทาง: 1860150

บทนำ

API คืออะไร

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

Application Programming Interface (API) คือชุดของกฎที่ระบุวิธีที่โปรแกรมซอฟต์แวร์สองโปรแกรมควรโต้ตอบกัน

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

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

HTTP API

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

REST API

REST API เป็น API ประเภทหนึ่งที่เป็นไปตามชุดของหลักการทางสถาปัตยกรรมที่เรียกว่า REST (Representational State Transfer) REST เป็นรูปแบบของสถาปัตยกรรมซอฟต์แวร์ที่กำหนดชุดข้อจำกัดสำหรับการสร้างเว็บ API

API สถานะ

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

API ไร้สัญชาติ

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

ความแตกต่างที่สำคัญระหว่าง Stateful และ Stateless API

ด้านล่างนี้คือข้อแตกต่างที่สำคัญบางประการระหว่าง API แบบมีสถานะและไร้สถานะ:

API สถานะ

API ไร้สถานะ

1. ต้องการเซสชันฝั่งเซิร์ฟเวอร์เพื่อจัดเก็บข้อมูลเกี่ยวกับคำขอของไคลเอ็นต์ 1. ไม่ต้องการเซสชันฝั่งเซิร์ฟเวอร์เพื่อจัดเก็บข้อมูลเกี่ยวกับคำขอของไคลเอ็นต์
2. บางครั้งสิ่งเหล่านี้อาจช้ากว่า Stateless API เนื่องจากต้องใช้และจัดเก็บข้อมูลซึ่งต้องใช้เวลา 2. Stateless API นั้นเร็วกว่าเพราะไม่ต้องการและเก็บข้อมูลเกี่ยวกับคำขอ
3. Stateful API ไม่ใช่เรื่องง่ายที่จะปรับขนาด  3. ปรับขนาดได้ง่ายขึ้นเนื่องจากไม่จำเป็นต้องรักษาข้อมูลเกี่ยวกับคำขอก่อนหน้านี้
4. โดยทั่วไปถือว่าปลอดภัยน้อยกว่า Stateless API 4. โดยทั่วไปถือว่าปลอดภัยกว่า

Amazon API Gateway คืออะไร

Amazon API Gateway เป็นบริการของ AWS ที่ใช้เพื่อสร้าง บำรุงรักษา และตรวจสอบ API ทั้งแบบมีสถานะ (websocket) และไร้สถานะ (HTTP และ REST) เราสามารถใช้ API เหล่านี้เพื่อเข้าถึง:

  1. บริการใดๆ ของ AWS
  2. ข้อมูลที่จัดเก็บไว้ใน AWS Cloud (เช่น บัคเก็ต S3)
  3. บริการเว็บอื่น ๆ

หากคุณเป็นนักพัฒนา API คุณสามารถสร้าง API ของคุณให้กับนักพัฒนาบุคคลที่สามได้อย่างง่ายดายเช่นกัน

ผู้ใช้ AWS API Gateway ส่วนใหญ่มีอยู่สองประเภท

  1. i) นักพัฒนา API ที่สร้างและปรับใช้ API เพื่อเปิดใช้งานฟังก์ชันที่จำเป็นใน API Gateway
  2. ii) ผู้พัฒนาแอพที่เป็นลูกค้าของผู้พัฒนา API

สถาปัตยกรรม Amazon API Gateway

สถาปัตยกรรม

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

คุณลักษณะของ Amazon API Gateway

  1. รองรับทั้ง API แบบมีสถานะและไม่มีสถานะ (ตัวอย่าง: Websocket, HTTP และ REST)
  2. กลไกการตรวจสอบสิทธิ์ที่มีประสิทธิภาพ ได้แก่ AWS Identity, Access Management Policies และ Lambda Authorizer
  3. พอร์ทัลนักพัฒนาที่นักพัฒนา API สามารถเผยแพร่ API ของตนได้
  4. การดำเนินการและการเข้าถึงการบันทึกสำหรับ CloudWatch รวมถึงตัวเลือกในการตั้งค่าการเตือน
  5. การผสานรวมกับบริการอื่นๆ ของ AWS เช่น AWS แลมบ์ดา และ AWS Kinesis
  6. การผสานรวมกับ AWS WAF ใช้สำหรับป้องกันการเจาะช่องโหว่บนเว็บ และใช้ AWS X-Ray เพื่อทำความเข้าใจและเน้นย้ำเวลาแฝงของประสิทธิภาพ

เริ่มต้นใช้งาน Amazon API Gateway

ตอนนี้เรากำลังจะสร้าง API แบบไร้เซิร์ฟเวอร์ ใน API แบบไร้เซิร์ฟเวอร์ เราสามารถมุ่งเน้นไปที่แอปพลิเคชันของเราแทนที่จะใช้เวลาจัดการเซิร์ฟเวอร์ มันทำงานดังนี้:

  • API ถูกเรียกใช้โดยไคลเอนต์
  • API ส่งคำขอไปยังแลมบ์ดา
  • แลมบ์ดาดำเนินการฟังก์ชันแลมบ์ดาและส่งผลลัพธ์กลับไปยัง API
  • หลังจากได้รับผลลัพธ์จากแลมบ์ดา API จะตอบกลับลูกค้า

http API

ขั้นตอนที่ 1 – สร้างฟังก์ชันแลมบ์ดา

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

สร้างฟังก์ชันแลมบ์ดา

การสร้างฟังก์ชันแลมบ์ดา:

1) ไปที่คอนโซลแลมบ์ดาที่ https://console.aws.amazon.com/lambda

2) คลิกที่ฟังก์ชั่นสร้าง

3) ป้อน “my-function” เป็นชื่อฟังก์ชัน

4) เลือก Python 3.9 เป็นรันไทม์

5) สำหรับฟังก์ชันนี้ เราไม่จำเป็นต้องเปลี่ยนแปลงอะไรในแท็บการอนุญาตและการตั้งค่าขั้นสูง เนื่องจากการอนุญาตเริ่มต้นนั้นเพียงพอสำหรับการสาธิตนี้

4) คลิกที่ฟังก์ชั่นสร้าง

ขั้นตอนที่ 2 – การสร้าง HTTP API

อเมซอน API

HTTP API จัดเตรียมตำแหน่งข้อมูล HTTP สำหรับฟังก์ชัน Lambda ของคุณ มันทำงานดังนี้:

  • ลูกค้าส่งแบบสอบถามไปยัง HTTP API
  • API ทริกเกอร์แลมบ์ดาซึ่งจะเรียกใช้งานฟังก์ชันแลมบ์ดา
  • แลมบ์ดาส่งผลลัพธ์ไปยัง API
  • API ตอบสนองต่อไคลเอนต์ด้วยการตอบสนองที่ได้รับ

ขั้นตอนในการสร้าง HTTP API

1) ไปที่คอนโซล API Gateway ที่ https://console.aws.amazon.com/apigateway

2) คลิกที่ Build เพื่อสร้าง HTTP API แรกของคุณ

3) คลิกที่เพิ่มการรวมสำหรับการรวม

4) เลือกแลมบ์ดา

5) ป้อนฟังก์ชันแลมบ์ดาของคุณ my-function

6) สำหรับชื่อ API ให้ป้อน my-http-api

7) คลิกที่ถัดไป

8) ตรวจสอบเส้นทางที่สร้างขึ้นสำหรับคุณ จากนั้นเลือก ถัดไป

9) ตรวจสอบสเตจที่สร้างขึ้นสำหรับคุณ จากนั้นเลือก ถัดไป

10) คลิกที่สร้าง

ขั้นตอนที่ 3 ทดสอบ API ของคุณ –

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

อเมซอน API

เพื่อทดสอบ API ของเรา

  1. ไปที่คอนโซล API Gateway ที่ https://console.aws.amazon.com/apigateway
  2. เลือก API ของคุณ
  3. จด URL การเรียกใช้ API ของคุณ (ดูภาพด้านบน)
  4. คัดลอก URL เรียกใช้ API ของคุณแล้ววางในเว็บเบราว์เซอร์ เข้าร่วมการเรียกใช้ URL และชื่อของฟังก์ชันแลมบ์ดาของคุณเพื่อเรียกใช้ฟังก์ชันแลมบ์ดาของคุณ คอนโซล API Gateway สร้างเส้นทางโดยใช้ชื่อฟังก์ชัน Lambda ของคุณว่า “my-function” ตามค่าเริ่มต้น 

    URL แบบเต็มควรมีลักษณะดังนี้ https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function เมื่อคุณโหลด URL นี้ เบราว์เซอร์ของคุณจะส่งคำขอ GET ไปยัง API

  1. คุณควรเห็นข้อความ “สวัสดีจากแลมบ์ดา!” ในเบราว์เซอร์ของคุณ ดังนั้นการตอบสนองของ API ของคุณจึงได้รับการยืนยัน

อเมซอน API

สรุป

เราได้สร้าง HTTP API แรกโดยใช้ Amazon API Gateway และ AWS Lambda นอกจากนี้ เราสามารถสำรวจกรณีการใช้งานต่างๆ ในลักษณะเดียวกันได้ และในทำนองเดียวกัน เราสามารถสร้าง REST API ได้ด้วย ซึ่งมีฟังก์ชันการทำงานมากกว่า

คุณชอบบทความนี้หรือไม่? บอกความคิดเห็นของคุณกับเราในความคิดเห็นด้านล่าง นอกจากนี้ อย่าลืมพูดถึงบทความที่คุณต้องการอ่านต่อไป

ประทับเวลา:

เพิ่มเติมจาก การวิเคราะห์ วิทยา