[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) }

 

posted @ 2021-06-23 14:39  Zhentiw  阅读(104)  评论(0编辑  收藏  举报