How to use Lambda with REST API Gateway

เข้าไปที่ REST API Gateway แล้วเลือกที่ Resources , สร้าง Resources ใหม่โดยการเลือก Actions > Create Resource

ตั้งชื่อ Resource name และ Resource path โดยตัวอย่างนี้เราจะใช้เป็น “lambda” , เลือก Enable API Gateway CORS เพื่อเพิ่ม CORS configuration ให้กับ resource, เลือก Create Resources เพื่อสร้าง Resource ขึ้นมา

เราจะได้ Resource “ /lambda ” มาแล้วแต่ว่ายังไม่มี method ในการเรียกใช้งาน, เลือกที่ “/lambda“ แล้วเลือก Actions > Create Method

จะมี dropdown ใต้ /lambda ให้เลือก get เพื่อสร้าง get method จากนั้นกดเครื่องหมายถูกเพื่อสร้าง method

เมื่อสร้าง method แล้วจะเข้ามาสู่หน้า method setup Integration type เลือกเป็น Lambda Function ติ๊กถูกในช่อง Use Lambda Proxy integration Lambda Region เลือกเป็น Region ที่เราสร้าง Lambda function ไว้ ช่อง Lambda Function ให้ใส่ชื่อ Lambda ที่เราต้องการ ในตัวอย่างนี้ผมจะใส่เป็น “vultureprime-demo“ กด Save เพื่อบันทึกการตั้งค่า

Deploy API

สิ่งสำคัญของ API Gateway เลยก็คือ เมื่อเราสร้าง Resource หรือปรับ Setting ต่างๆเราต้อง deploy ไปยัง Stage เพื่อ apply การตั้งค่าของเราไปยัง Stage นั้นๆ เดี๋ยวผมจะทำการ deploy ไปยัง stage ที่ผมมีอยู่ที่ชื่อว่า demo

เราก็จะได้ resource /lambda ที่ใช้ method get ที่พร้อมในการเรียกใช้งานแล้ว ไปลองทดสอบกันเลย

Test API

เราจะได้ invoke url ที่พร้อมสำหรับใช้งานแล้วก็ได้

https://jgm1xpndi8.execute-api.ap-southeast-2.amazonaws.com/demo/lambda

เราจะทำการทดสอบโดยการ request ผ่าน get method ไปยัง url นี้กันโดยใช้ postman ซึ่งเราก็จะได้ผลลัพธ์หน้าตามประมาณนี้เลย

ก็คือเราได้ “Hello from Lambda!“ ตอบกลับมาตามที่ต้องการ

ในส่วนของ Lambda function ถ้าเราเปิดไปที่หน้าของ function เราจะเห็นว่ามี API Gateway เป็น Trigger เพิ่มขึ้นมาตามรูปต่อไปนี้เลย

Before Add trigger

After add trigger

ส่วนนี้ก็จะเป็นส่วนที่ช่วยบอกเราได้ว่า Lambda function นี้ถูก Trigger ผ่าน service ตัวไหนอยู่

Summary

ไม่ยากเลยใช่มั้ยครับสำหรับการสร้าง Trigger ของ Lambda function โดยใช้ API Gateway การ Setting ตรงนี้ถือว่าเป็นสิ่งที่ดีมากๆ เพราว่าเราสามารถใช้งาน Lambda ของเราร่วมกับ API ตัวอื่นๆที่ host อยู่ต่าง location กับได้อย่างง่ายดาย โดยมี API Gateway มาเป็นคนจัดการให้


Aa

© 2023, All Rights Reserved, VulturePrime co., ltd.