AWS Lambda의 Express.js 배포
'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 앱을 만드는 데 세 단계만 거치면 됩니다.
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 앱입니다.
Reference
이 문제에 관하여(AWS Lambda의 Express.js 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/arvind644/expressjs-deployment-in-aws-lambda-14ak텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)