9033 / 9033.github.io

my GitHub Page
0 stars 1 forks source link

nodejs의 expressjs 로 구현된 라우터를 aws lambda를 이용해서 구현. #4

Open 9033 opened 1 year ago

9033 commented 1 year ago

image

nodejs의 expressjs 로 구현된 라우터를 aws lambda를 이용해서 구현하는 방법은 다음과 같습니다.

  1. expressjs 앱을 작성합니다. 예를 들어, app.js 파일에 다음과 같은 코드를 작성할 수 있습니다.
    
    'use strict'
    const express = require('express')
    const app = express()

app.get('/', (req, res) => res.send('Hello world!'))

module.exports = app

2. aws-serverless-express 모듈을 설치합니다. 이 모듈은 expressjs 앱을 AWS Lambda에서 실행할 수 있도록 도와줍니다.

npm install aws-serverless-express --save

3. lambda.js 파일을 생성하고 다음과 같은 코드를 작성합니다. 이 파일은 AWS Lambda 함수의 핸들러로 사용됩니다.
```js
'use strict'
const awsServerlessExpress = require('aws-serverless-express')
const app = require('./app')
const server = awsServerlessExpress.createServer(app)

exports.handler = (event, context) => {
  console.log('Received event:', JSON.stringify(event))
  awsServerlessExpress.proxy(server, event, context)
}
  1. AWS Lambda 콘솔에 접속하여 새로운 함수를 생성합니다. 다음과 같은 설정을 사용합니다.

이름 - express-lambda 런타임 - Node.js 18.x 역할 - 기존 역할 선택 기존 역할 - lambda-role

  1. 함수 코드 섹션에서 코드 입력 유형을 .zip 파일 업로드로 변경하고 app.js, lambda.js 및 node_modules 폴더가 포함된 .zip 파일을 업로드합니다.

  2. 기본 설정 섹션에서 핸들러를 lambda.handler로 변경합니다.

  3. API Gateway 트리거를 추가하여 함수에 대한 HTTP 엔드포인트를 생성합니다. 다음과 같은 설정을 사용합니다.

API 유형 - REST API API 이름 - express-api 배포 스테이지 - prod 보안 - 열기

  1. 배포 버튼을 클릭하여 함수와 API를 배포합니다.

  2. API Gateway 콘솔에서 생성된 API의 엔드포인트 URL을 확인하고 브라우저에서 방문합니다. "Hello world!" 메시지를 볼 수 있습니다.