
Creating an Shop API of GET items with DynamoDB, lambda and API Gateway using AWS
API
It stands for Application Program interface which helps in connection of two applications, computers, or between computer programs to talk to each other. It is used to access data, server software, or other applications and has been around for some time. Each time anyone uses a particular app for weather updates or good restaurants in an app API is used.
API Gateway
A fully managed service that makes developers easily create, publish, maintain, monitor, and secure APIs at any scale. API Gateway can be used to create Restful APIs and WebSocket APIs which have real-time two-way communication applications. It is a front door for applications to access data, business logic, or functionality from your backend services.
AWS Lambda
A serverless compute service which runs code as a reply to events and automatically takes care of the bottom resources. It runs code on high availability compute infrastructure and performs all the administration of the compute resources. A few examples are HTTP requests via Amazon API Gateway, changes to objects in S3, and many others.
DynamoDB
An Amazon AWS Web Services database that is fully managed, serverless, key-value NoSQL database, has high-performance applications at any scale. It has the following benefits such as built-in security, continuous backups, automated multi-region replication, in-memory caching, and data export tools
Refer to the below article on how to access data directly from Lambda instead of DynamoDB
Demo
Search for API Gateway in the AWS Console and click build on HTTP API
Give an API Name and click next
No changes right now in the configure routes and click next
Give a name to the stage and keep the auto-deploy as the default
Review and click on create
Adding a path in the routes and click create
Choosing the GET method, entering the path, and clicking create
Go to lambda and click on create function
Click on author from scratch, give a function name, keep other things as default and click on create function
Go to DynamoDB and click create table
Write down a table name, partition key and choose the customized settings
In Capacity mode select on-demand
Keep the rest as it is and click on create table
Creating items in the shop-item table
Click on create an item
Clicking duplicate and adding onion date
Make below changes in code source and clicking deploy
In the configuration, tab choose permission and click edit on the execution role section
In order to attach the policy click the below link
Clicking on inline policy
Review the policy and click create policy thus the lambda can now access the DynamoDB
Going back to Routes of API Gateway click on GET and click on attach integration
In the integration target choose “lambda function”, integration target “get item” and click create
Copy the invoke URL of API
Paste the invoke URL in the new tab with “/item/34” and get the result
Paste the invoke URL in the new tab with “/item/78” and get the result