[AWS Lambda] Convert a Express node.js app to serverless
Install new dependencies
In a folder with the serverless project run the following commands to add new dependencies:
npm install --save aws-serverless-express
npm install --save express
express - is a very popular Node.js web framework that we will use in this lesson aws-serverless-express - is a library that allows using express with AWS Lambda
Import new dependencies
In the getGroups.ts you need to import the following dependencies:
import * as express from 'express'
import * as awsServerlessExpress from 'aws-serverless-express'
Create an Express instance
Once the dependencies are imported you need to create an Express application:
const app = express()
Add a handler for a GET method
To define how to process an incoming GET request, we need to use the app.get method and pass a function that will be called to process a request:
app.get('/groups', async (_req, res) => {
// TODO: get all groups as before
const groups = ...
// Return a list of groups
res.json({
items: groups
})
})
You can read more about how to use Express here.
To return a JSON response we use the .json() method on the response object.
Export a Lambda handler
Now the last thing that we need to do is to create a Lambda handler. To do this you can use the following code snippet:
// Create Express server
const server = awsServerlessExpress.createServer(app)
// Pass API Gateway events to the Express server
exports.handler = (event, context) => { awsServerlessExpress.proxy(server, event, context) }

浙公网安备 33010602011771号