Deploy Node JS บน AWS Lambda ด้วย ZIP ไฟล์กันเถอะ

Deploy Node JS AWS Lambda , Deploy Node JS บน AWS Lambda

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

วันนี้ผมจะมาเขียน blog เกี่ยวกับวิธีการ deploy node js app บน AWS lambda โดยใช้ zip file ที่ได้ศึกษามากันกันครับ

Step 1 : เตรียม project

ใน blog นี้เราจะไม่ลงเนื้อหาในส่วนการเขียน backend โดยใช้ node js + express กันนะครับ
โดยโครงสร้างโปรเจคของผมที่จะทำการ deploy มีดังนี้

Step 2 : ทำให้ application สามารถใช้งานแบบ serverless ได้

จากนั้นให้เราทำการ npm install serverless-http ซึ่งเป็น library สำหรับเตรียม app ของเราให้สามารถใช้งานแบบ serverless ได้

const express = require("express");
const ServerlessHttp = require('serverless-http')
const app = express();
.
.
.
// application logic and api 
module.exports.handler = ServerlessHttp(app);

Step 3 : ทำการเลือก file สำหรับ zip โปรเจคดังนี้

ทำการเลือก file กับ folder ที่เป็น logic ของ application เราจากนั้นก็ทำการ zip เพียงเท่านี้ก็พร้อมสำหรับการ deploy บน lambda function ได้แล้ว

Step 4 : zip folder library สำหรับ application ของเรา

ทำการ zip โดยมีโครงสร้าง folder ดังนี้

-nodejs/
-Node_modules/

Step 5 : upload application และ library ของเราบน AWS lambda

5.1 ทำ upload application ของเราโดยกดตามลูกศรสีแดงตามภาพ

5.2 ทำ upload library ของเราดดยกดตามลูกศรสีแดงตามภาพ

ในช่อง name ใส่ชื่อตามที่เราต้องการส่วน option อื่นปล่อยตาม default

เพียงเท่านี้การ deployment ก็เสร็จเรียบร้อย

สรุป

การ deploy โดยการ upload zip file นั้นทาง AWS ได้จัดการออกแบวิธี upload ให้ง่ายเหมือนการ upload file โดยทั่วไปปกติเพียงเเค่เราตีองจัด file path ให้ตรงตามที่ document เขียนไว้ก็สามารถ deploy ได้อย่างง่ายดาย

ข้อมูลอ้างอิง

https://bitbucket.org/blog/deploy-an-express-js-app-to-aws-lambda-using-the-serverless-framework

https://docs.aws.amazon.com/lambda/latest/dg/nodejs-package.html

https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html