AWS Lambda의 Express.js 배포

3753 단어
다음 익스프레스 코드 스니펫을 사용하고 있습니다.

'use strict'

const express = require('express')
const app = express()

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

const port = process.env.PORT || 3000
app.listen(port, () =>
  console.log(`Server is listening on port ${port}.`)
)


해당 코드 스니펫을 새 폴더에 app.js 로 저장하면 간단한 Express 앱을 만드는 데 세 단계만 거치면 됩니다.
  • 새 Node.js 프로젝트를 만듭니다. 이렇게 하려면 터미널에서 npm init -y 명령을 실행하세요. 먼저 app.js가 포함된 폴더로 이동했는지 확인하세요.
  • 터미널에서 npm install express --save 명령을 실행하여 NPM에서 Express 모듈을 설치합니다.
  • node app.js 명령을 실행하면 "Server is listening on port 3000"이 표시되어야 합니다. 응답으로.

  • 이제 익스프레스 앱이 준비되었습니다. http://localhost:3000로 이동

    애플리케이션 배포



    우리는 aws lambda에서 deply 또는 application을 할 것입니다.

    이제 프로덕션 준비를 위해 코드를 일부 변경해야 합니다. app를 사용하여 서버를 시작하는 대신 app.listen를 내보내야 합니다. app.js는 다음 코드 목록과 같아야 합니다.

    'use strict'
    
    const express = require('express')
    
    const app = express()
    app.get('/', (req, res) => res.send('Hello world!'))
    
    module.exports = app
    


    이렇게 하면 로컬 Express 서버가 중단되지만 다음 콘텐츠가 포함된 파일을 추가할 수 있습니다app.local.js.

    'use strict'
    
    const app = require('./app')
    const port = process.env.PORT || 3000
    app.listen(port, () =>
      console.log(`Server is listening on port ${port}.`)
    )
    


    그런 다음 다음 명령을 사용하여 로컬 서버를 실행합니다.

    node app.local.js
    


    이제 Express 앱용 AWS Lambda 래퍼를 만드십시오. Claudia를 사용하면 터미널에서 다음 코드를 실행하여 그렇게 할 수 있습니다.

    claudia generate-serverless-express-proxy --express-module app
    


    이 단계에서 다음 콘텐츠가 포함된 lambda.js라는 파일이 생성되었습니다.

    'use strict'
    const awsServerlessExpress = require('aws-serverless-express')
    const app = require('./app')
    const binaryMimeTypes = [
      'application/octet-stream',
      'font/eot',
      'font/opentype',
      'font/otf',
      'image/jpeg',
      'image/png',
      'image/svg+xml'
    ]
    const server = awsServerlessExpress
      .createServer(app, null, binaryMimeTypes)
    exports.handler = (event, context) =>
      awsServerlessExpress.proxy(server, event, context
    )
    


    이제 lambda.js 명령을 사용하여 Express 앱(claudia create 파일 포함)을 AWS Lambda 및 API 게이트웨이에 배포하기만 하면 됩니다.

    claudia create --handler lambda.handler --deploy-proxy-api --region eu-central-1
    


    잠시 후 명령이 완료되고 다음 응답이 인쇄되었습니다.

    {
      "lambda": {
        "role": "awesome-serverless-expressjs-app-executor",
        "name": "awesome-serverless-expressjs-app",
        "region": "eu-central-1"
      },
      "api": {
        "id": "iltfb5bke3",
        "url": "https://iltfb5bke3.execute-api.eu-central-1.amazonaws.com/latest"
      }
    }
    


    그리고 브라우저에서 해당 응답의 링크를 방문하면 "Hello world!"가 인쇄됩니다. 그것은 효과가 있었다! 🙀



    대박. 이것은 현재 배포된 Serverless Express 앱입니다.

    좋은 웹페이지 즐겨찾기