จะปรับใช้ Serverless Node.js API ด้วย AWS API Gateway ได้อย่างไร

Ca Prab Chi Serverless Node Js Api Dwy Aws Api Gateway Di Xyangri



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

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

อ่านเพิ่มเติม : : เริ่มต้นใช้งาน AWS Lambda







โครงร่างด่วน



บทความนี้แสดงให้เห็นถึงประเด็นต่อไปนี้:



Serverless Framework คืออะไร?

ระยะ “ไร้เซิร์ฟเวอร์” หมายถึงคำศัพท์เฉพาะที่การจัดหาและการบำรุงรักษาเซิร์ฟเวอร์ได้รับการจัดการโดยซอฟต์แวร์บุคคลที่สามหรือผู้ให้บริการระบบคลาวด์ กรอบงานดังกล่าวช่วยให้ผู้ใช้มุ่งเน้นไปที่ตรรกะทางธุรกิจหลักแทนการบำรุงรักษาเซิร์ฟเวอร์ ปัจจุบัน Serverless Frameworks ดึงดูดความสนใจของยักษ์ใหญ่ด้านเทคโนโลยีและมอบสิทธิประโยชน์มากมายมหาศาล





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

API คืออะไร?

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



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

API เกตเวย์คืออะไร?

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

API ประเภทต่าง ๆ ใน API Gateway มีอะไรบ้าง

API เกตเวย์ให้บริการการจัดการสำหรับ API สามประเภทที่แตกต่างกันดังที่กล่าวไว้ด้านล่าง:

HTTP API: API นี้ถูกใช้อย่างกว้างขวางในการพัฒนาเว็บซึ่งจำกัดเฉพาะฝั่งไคลเอ็นต์เท่านั้น API ดังกล่าวสามารถจัดประเภทเป็นแบบส่วนตัวหรือสาธารณะก็ได้

API ที่เหลือ: คำว่า REST ย่อมาจาก “API การโอนสถานะการเป็นตัวแทน” เป็นหนึ่งในวิธีการที่ใช้บ่อยที่สุดในการแยกส่วนหน้าและส่วนหลังของแอปพลิเคชัน REST API มีลักษณะไร้สถานะและมีความยืดหยุ่นสำหรับการพัฒนาและการใช้งาน

เว็บซ็อกเก็ต API: API ดังกล่าวจะใช้เมื่อเกี่ยวข้องกับการสื่อสารซ็อกเก็ต WebSocket API อนุญาตให้ผู้ใช้สร้างซ็อกเก็ตสำหรับการสื่อสารสองทิศทางแบบสองทิศทางในการพัฒนาเว็บ API เหล่านี้เขียนด้วย JavaScript

จะปรับใช้ Serverless Node.js API ด้วย API Gateway ได้อย่างไร

สำหรับการปรับใช้ Serverless Node.js API ด้วย API Gateway เราจะใช้บัคเก็ต S3, ฟังก์ชัน Lambda และเกตเวย์ API บัคเก็ต S3 จะมีโค้ดของแอปพลิเคชัน URI ที่ไม่ซ้ำกันของบัคเก็ตจะมอบให้กับฟังก์ชัน Lambda ในฐานะตัวจัดการ API เกตเวย์จะถูกเพิ่มเป็นตัวกระตุ้นให้กับฟังก์ชัน Lambda ซึ่งจะประมวลผลอินพุตของผู้ใช้และให้เอาต์พุตที่เหมาะสม

ด้านล่างนี้คือขั้นตอนในการปรับใช้ Serverless Node.js API กับเกตเวย์ API:

ขั้นตอนที่ 1: สร้างฟังก์ชัน Lambda

หากต้องการสร้างฟังก์ชัน Lambda ให้เข้าไปที่ “แลมบ์ดา” บริการจาก คอนโซลการจัดการ AWS : :

เรียนรู้เพิ่มเติม: “วิธีสร้างฟังก์ชัน Lambda ด้วย Python Runtime” .

บนอินเทอร์เฟซฟังก์ชัน Lambda ให้คลิกที่ “สร้างฟังก์ชั่น” ปุ่ม:

จากอินเทอร์เฟซสร้างฟังก์ชัน ให้เลือก “ผู้เขียนตั้งแต่เริ่มต้น” ตัวเลือก:

ถัดมาเป็น 'ข้อมูลพื้นฐาน' ส่วน. ในส่วนนี้ ให้ระบุชื่อของฟังก์ชัน Lambda ใน “ชื่อฟังก์ชั่น” : :

คลิกที่ “สร้างฟังก์ชั่น” ปุ่มที่อยู่ด้านล่างของอินเทอร์เฟซ:

นี่. การทำงาน ได้ถูกสร้างขึ้น ประสบความสำเร็จ : :

ขั้นตอนที่ 2: สร้างเกตเวย์ API

ขั้นตอนต่อไปคือการสร้าง API Gateway เพื่อจุดประสงค์นี้ ให้เข้าไปที่ “เกตเวย์ API” บริการจาก คอนโซลการจัดการ AWS : :

เลื่อนอินเทอร์เฟซ API Gateway ลงแล้วคลิกที่ 'สร้าง' ตัวเลือกจาก ส่วนที่เหลือ API ปิดกั้น:

บน “สร้าง API” อินเตอร์เฟซ, เลือก ต่อไปนี้ ตัวเลือกที่ไฮไลต์ . ขณะที่เรากำลังสร้างก API ที่เหลือ ตั้งแต่เริ่มต้น เราได้เลือกตัวเลือกต่อไปนี้:

ใน การตั้งค่า บนอินเทอร์เฟซเดียวกัน ให้ระบุชื่อสำหรับ API ใน “ชื่อเอพีไอ” ช่องข้อความ:

คลิกที่ “สร้าง API” ปุ่ม:

หลังจากสร้าง API สำเร็จแล้ว ให้คลิกที่ “การกระทำ” และเลือกตัวเลือกที่ไฮไลต์ต่อไปนี้เพื่อกำหนดค่าทรัพยากรและวิธีการของ API:

จากนั้นระบุชื่อของ API ใน “ชื่อทรัพยากร” ช่องข้อความ. ใน เส้นทางทรัพยากร ผู้ใช้สามารถระบุเส้นทางของทรัพยากรได้ เส้นทางที่ระบุนี้จะถูกรวมเข้ากับวิธีการดั้งเดิมเพื่อจัดการคำขอ คลิก “สร้างทรัพยากร” ปุ่ม:

หลังจากสร้างทรัพยากรแล้วให้คลิกที่ “การกระทำ” อีกครั้งแล้วเลือก “สร้างทรัพยากร” วิธีการกำหนดวิธีการและทรัพยากรภายใน API:

ระบุชื่อ “ชื่อทรัพยากร” ฟิลด์และคลิกที่ “สร้างทรัพยากร” ปุ่ม:

หลังจากกำหนดค่าทรัพยากรที่ซ้อนกันแล้ว ให้แตะ “การกระทำ” ปุ่มและคลิกที่ “สร้างวิธีการ” ปุ่มจาก เมนูแบบเลื่อนลง : :

เราต้องการทดสอบการทำงานของ API ของเราโดยใช้ รับคำขอ ใน Node.js ดังนั้นในอินเทอร์เฟซของ Method เราจะเลือก 'รับ' ขอ:

หลังจากเลือก รับคำขอ , คลิกที่ 'ตรวจสอบ' ปุ่มเพื่อยืนยันการเปลี่ยนแปลง:

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

หลังจากคลิก. 'บันทึก' กล่องโต้ตอบต่อไปนี้จะปรากฏขึ้น คลิก 'ตกลง' ปุ่ม:

ในทำนองเดียวกัน สร้างอีกหนึ่งวิธีโดยทำตามขั้นตอนที่คล้ายกันเหมือนกับที่เราได้ปฏิบัติตามสำหรับวิธีแรก ผู้ใช้สามารถสร้างได้หลายวิธีภายใน API ตามความต้องการ หลังจากตั้งค่าวิธีการทั้งหมดแล้ว ให้คลิกที่ “การกระทำ” แท็บแล้วเลือก “ปรับใช้ API” ตัวเลือก:

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

ที่ เอพีไอ ได้รับการ สร้างสำเร็จแล้ว : :

เลื่อนลง อินเทอร์เฟซและคลิกที่ 'บันทึกการเปลี่ยนแปลง' ปุ่ม:

ขั้นตอนที่ 3: สร้างบัคเก็ต S3

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

หากต้องการสร้างบัคเก็ต S3 ให้ค้นหา 'เอส3' บริการในแถบค้นหาของ คอนโซลการจัดการ AWS แตะชื่อบริการจากผลลัพธ์ที่แสดง:

บนคอนโซล S3 ให้คลิก “สร้างบัคเก็ต” ตัวเลือกในการเริ่มต้นกระบวนการ:

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

โดยการเก็บ การตั้งค่า เช่น ค่าเริ่มต้น , คลิกที่ “สร้างบัคเก็ต” ปุ่มที่ด้านล่างของอินเทอร์เฟซ:

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

หลังจากดาวน์โหลดไฟล์ ไฟล์ซิป , ไปที่ S3 แดชบอร์ด และเลือกถัง ในอินเทอร์เฟซถัดไป คลิกที่ 'ที่อัพโหลด' ปุ่มและ ที่อัพโหลด ที่ ไฟล์ซิป ไปที่ถัง:

เรียนรู้เพิ่มเติม: จะอัพโหลดวัตถุใน Amazon Simple Storage Service ได้อย่างไร

แตะที่ “เพิ่มไฟล์” ปุ่มที่อยู่ทางด้านขวาของอินเทอร์เฟซใกล้กับ 'เพิ่มกล่องเก็บไฟล์' ปุ่ม. หลังจากเพิ่ม. ไฟล์ซิป ไปที่ถัง ตี 'ที่อัพโหลด' ปุ่มที่ด้านล่างของอินเทอร์เฟซ:

ที่ ไฟล์ ได้รับการ อัปโหลดเรียบร้อยแล้ว : :

หลังจาก กำลังอัพโหลด ไฟล์ไปยังที่ฝากข้อมูลคลิกที่ วัตถุ เพื่อดูคุณสมบัติ:

คลิกที่ “คัดลอก S3 URI” ปุ่ม. สิ่งนี้จะถูกเพิ่มเข้าไปในฟังก์ชัน Lambda:

ไปที่ แดชบอร์ดแลมบ์ดา และเลือกฟังก์ชัน Lambda:

เลื่อนลงไปที่ 'รหัส' ส่วนแล้วแตะ “อัปโหลดจาก” ปุ่ม. จาก เมนูแบบเลื่อนลง คลิกที่ “ตำแหน่งของอเมซอน S3” ตัวเลือก:

วาง “S3 URI” ในกล่องโต้ตอบที่แสดงแล้วคลิก 'บันทึก' ปุ่ม:

บน อินเทอร์เฟซฟังก์ชันแลมบ์ดา ให้เลื่อนลงไปที่ “การตั้งค่ารันไทม์” และคลิกที่ 'แก้ไข' ปุ่ม:

ใน “ตัวจัดการ” แก้ไขการกำหนดค่าต่อไปนี้ ที่ “โนเดพิ” คือชื่อโฟลเดอร์ที่อัปโหลดไปยังบัคเก็ต S3 และ index.js เป็นจุดเริ่มต้น หลังจากนั้นคลิกที่ 'บันทึก' ปุ่ม:

ขั้นตอนที่ 4: การยืนยัน

ไปที่ เกตเวย์ API คอนโซลบริการและคลิกที่ “เอพีไอ” ชื่อ:

หลังจากเลือก API แล้ว ให้คลิกที่ “ขั้นตอน” จากแถบด้านข้างแล้วคลิกขั้นตอนการปรับใช้ เช่น ขั้นแรก:

คัดลอก URL และเปิดตัว บุรุษไปรษณีย์ เครื่องมือบนเครื่องท้องถิ่น:

สร้างก รับคำขอ ใน บุรุษไปรษณีย์ และวาง URL ลงไป หลังจากคลิก. 'ส่ง' ปุ่ม เราจะได้ผลลัพธ์ดังนี้:

นั่นคือทั้งหมดจากคู่มือนี้

บทสรุป

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