Build Serverless Api Using lambda-api

Serverless application can be easily created with AWS lambda and AWS Gateway. We can write an lambda function and configure the gateway. We get a Rest endpoint which we can call to reach the lambda function. This approach is easy, but comes with a caveats. We have to configure API gateway, manage the deployments, publish to stages.
In this blog, we will see how to develop and deploy a serverless application using
Lambda API, a lightweight framework for developing serverless applications.
Lets create a new project directory.
mkdir serverless-samples
cd serverless-samples
We will initiate the project and Install lambda-api.
npm init
npm i lambda-api
The Lambda-api just needs the 3 steps.
  • Require the framework and Instantiate it.
  • Define a route.
  • Declare our Lambda Handler.
  • Create a new handler.js file and add the below contents.
    //----------------------------------------------------------------------------//
    // Require the framework
    //----------------------------------------------------------------------------//
    
    const app = require("lambda-api")({ version: "v1.0", base: "v1" });
    
    //----------------------------------------------------------------------------//
    // Define an API routes
    //----------------------------------------------------------------------------//
    
    // GET
    app.get("/greet/:name", (req, res) => {
      // Send the response
      res.status(200).json({
        //name: req.params,
        status: "ok",
        body: "Hello " + req.params.name,
      });
    });
    
    //----------------------------------------------------------------------------//
    // Lambda handler
    //----------------------------------------------------------------------------//
    module.exports.router = (event, context, callback) => {
      context.callbackWaitsForEmptyEventLoop = false;
    
      // Run the request
      app.run(event, context, callback);
    }; // end router handler
    In the above code, we have created an GET endpoint with /greet/:name. The Path parameter is name which will be passed to the GET endpoint. The API will return the response with statuscode as 200 and the body will greet a person with name that is passed in the pathparams. To run the request, we use app.run() method.
    Deploy to AWS
    Login into AWS and search for Lambda service. Create a new function, provide the name and Runtime as shown below.
    Create a zip file of the project and upload the zip file to function serverless-sample and change the handler to handler.router.
    Invoke the function with a test event. We need to choose the template that matches the service that triggers our function or we can also create a event document in Json.
    As shown above, we have to select a New event option and select apigateway-aws-proxy template and give an test event name as gatewaysample. We will get a sample event which is compatible with the api-gateway.
    Now test the endpoint by adding values to below keys.
  • "resource": "/v1/greet/rahul"
  • "path": "/v1/greet/rahul"
  • "httpMethod": "GET"
  • Once configured, click on Test button, We get the below greeting for the name passed into the function.

    22

    This website collects cookies to deliver better user experience

    Build Serverless Api Using lambda-api