AWS Lambda is a compute service that lets you run code without provisioning or managing servers.
Amazon DynamoDB is a fast and flexible nonrelational database service for all applications that need consistent, single-digit millisecond latency at any scale.
Amazon API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale.
Let us see how we can build a RESTful API in Node.JS with the Serverless approach using AWS Lambda, API Gateway & DynamoDB.
Step 1) Sign in to your AWS Management Console and Go to Services ->Compute -> Lambda
Step 2) Create a Lambda function and enter details as below.
In the role, create a custom role with DynamoDB Full Access Policy in AWS IAM.
Step 3) Go to DynamoDB and Create a table.
Click on Create table:
Enter the table name and primary key as shown below:
Click on create.
Your table has been created.
Add other required columns like author name and book name.
Step 4) Go back to your Lambda function. Add the following code for ‘POST’:
Step 5) Add Table name in Lambda Environment Variables.
Step 6) Configure Test Event to execute function with example data.
Add test data and click on create:
Step 7) Now Save and Run the function: Click on “Test”
Finally your lambda function is executed successfully,
Go to your DynamoDB table and check the data:
Step 8) Create another Lambda function to fetch the ‘GET‘ DB details:
Click on Create in above to create a new function.
Add the following code as shown below:
We will use scan method to query DynamoDB table
Add the Table Name as environment variable for this function also as done before.
Click on TEST
You can easily GET details from DynamoDB Table
So now our POST and GET are working!!!
Setting up the API Gateway
Go to API Gateway Console and create a new API
Create a new API
Enter the details as shown below: api name and description.
Click on create.
Now Create a method: GET
Click on “Actions“ button drop down and select Create a method.
Enter the name of your Lambda Function in the details.
Same as before, Create a method: POST
Enter the name of Lambda function.
Deploy your API
Choose Deploy API in the above menu.
Enter the Stage name as shown below and click on Deploy button
Copy the invoke URL
Test your API in the browser:
Here it is your GET request is successfully working. For POST you can use a REST client like POSTMAN.
Congrats on successfully creating a Serverless REST API on cloud.
Post you comments below for any queries!
One thought on “Creating and deploying a Serverless REST API with AWS Lambda, DynamoDB and API Gateway and node.js”