1. 程式人生 > 其它 >[AWS Lambda] Convert a Express node.js app to serverless

[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 lessonaws-serverless-express- is a library that allows usingexpress

with AWS Lambda

Import new dependencies

In thegetGroups.tsyou 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 incomingGETrequest, we need to use theapp.getmethod 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 Expresshere.

To return a JSON response we use the.json()methodon 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) }