일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 자바
- swagger
- state
- front-end
- SWIFT
- spring boot
- 개발자
- 개발이 취미인 사람
- back-end
- 코틀린
- AWS
- Producer
- class
- It
- react
- Sequelize
- Kotlin
- restful api
- component
- props
- kafka
- java
- vue
- file upload
- Nest.js
- 상속
- 조건문
- javascript
- 반복문
- node.js
- Today
- Total
개발이 취미인 사람
[AWS] Lambda API 구축(aws-serverless-express) 본문
- 개요
안녕하세요. 이번 시간에는 Lambda API 서버를 구축하는 시간은 가져보겠습니다.
기본적으로 Lambda를 그냥 사용하게 되면 정말 불편한 상황들이 발생합니다. (저는 그랬습니다. ㅋㅋ 고수님들은 아닌가요?... ㄷㄷ)
우리가 기본적으로 개발을 할 때 사용하는 Express 나 Koa 환경이랑은 다릅니다.
그렇기 때문에 저는 aws-serverless-express 모듈과 express 모듈을 혼합해서 lambda API 서버를 구축합니다.
Express 환경에 대해 아시는 분들은 이해하실 수 있지만 모르시는 분들은 아래 링크를 통해 학습하고 오시는 걸 추천드리겠습니다.
[Node.js] Express RESTFul API 서버 만들기
- 설정
package.json 파일 생성
#npm
npm init
#yarn
yarn init
모듈 설치
#npm
npm install express aws-serverless-express
npm install serverless-offline --save-dev
#yarn
yarn add express aws-serverless-express
yarn add serverless-offline --dev
아주 기본적인 모듈을 설치했습니다. 필요한 모듈은 직접 설치하시면 될 것 같습니다.
(serverless-offiline은 개발환경을 제공하기 위한 모듈입니다)
handler.js
const awsServerlessExpress = require("aws-serverless-express")
const express = require("express")
const app = express()
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.get("/api", (req, res) => {
res.json({ response: true, msg: "연결 성공" })
})
const server = awsServerlessExpress.createServer(app)
module.exports.index = (event, context) =>
awsServerlessExpress.proxy(server, event, context)
Express를 알고 계시는 분들은 딱보고 아실꺼라고 생각이 듭니다.
하지만 환경설정과 서버 실행하는 방법에 대해 알수 없습니다.
우리는 serverless framework 를 사용하기 때문에 serverless.yml 파일을 통해 정보를 설정합니다.
serverless.yml
service: serverless-api
frameworkVersion: "2"
custom:
serverless-offline:
httpPort: 4000 # 로컬 포트
lambdaPort: 4001 # 람다 포트
provider:
name: aws
runtime: nodejs12.x # 서버 버전
lambdaHashingVersion: 20201221
functions:
api:
handler: handler.index
#API 경로를 등록해줘야 한다.(해당 API를 통해 API Gateway에 등록며 개발환경에서도 등록해야 된다.)
events:
- http:
path: /api
method: get
plugins:
- serverless-offline
serverless.yml 파일을 확인해보면 기본 port와 api 등록 그리고 plugins을 등록했습니다.
실제 서버를 실행해보겠습니다.
서버 실행 명령어
serverless offline start
정상적으로 서버가 실행되며 해당 경로에 접속해보겠습니다.
접속이 잘되는 걸 알수 있습니다.
Express를 잘 사용하시는 분들은 어렵지 않게 구축할 수 있을 거라 생각하지만 꼭 실습을 해보시는 걸 추천드리겠습니다!
'백앤드(Back-End) > AWS' 카테고리의 다른 글
[AWS] Lambda 개발 & 배포 환경 설정(serverless.yml ) (0) | 2021.09.29 |
---|---|
[AWS] Lambda 구축 (Serverless Framework) (0) | 2021.09.28 |
[AWS] Lambda 구축 (AWS Console) (0) | 2021.09.28 |
[AWS] Lambda 개념 및 로컬 환경 설정(Mac + Node + Serverless) (0) | 2021.09.28 |
[AWS] SMS 문자 메시지 전송 (Simple Notification Service) (5) | 2021.09.11 |