This blog post will walk you through an example of a cloud resume API using AWS DyanmoDB, Lambda, API Gateway and IAM.
The Challenge
The project is based on the Cloud Resume Challenge, designed to test your cloud skills by building a resume API. The challenge involves using several cloud services to create a robust and scalable API that serves your resume data.
Technologies and Services
1. Web Server Runtime: Node.js
2. AWS Services: Lambda, DynamoDB, API Gateway and IAM
3. CI/CD: GitHub Actions
The solution utilizes AWS Lambda to handle serverless computing, which is triggered by HTTP requests via API Gateway. This setup ensures that the resume data is fetched from DynamoDB when an API request(GET) is made.
Architecture and Steps
API Gateway Setup: Create an HTTP API using API Gateway to handle incoming requests with a default stage
-
Lambda Function: Develop a Lambda function in Node.js to interact with DynamoDB and retrieve resume data. Please refer here for the source code.
IAM Role: Create a Lambda Execution IAM role with permissions to access DyanmoDB for Lambda function runtime to interact.
Endpoint Deployment: Deploy the API Gateway endpoint to make the API accessible over the internet, if you use the
$default
deployment stage then the api will be auto-deployed
Documentation
For detailed guidance on the technologies used, refer to the following documentation:
Google Cloud Platform Solution
While the AWS solution is fully implemented, I am working on implementing the same architecture using GCP. This involves using Google Cloud Functions, API Gateway, IAM and Google Firestore for demonstrating overlap and versatility in public cloud providers.
Conclusion
Finally, I would like to extend my heartfelt appreciation to Rishab Kumar and Ifeanyi for creating the Cloud Resume Challenge. This initiative is an outstanding opportunity for individuals to enhance their cloud computing skills and showcase their abilities. The comprehensive and practical nature of the challenge not only helps participants gain valuable hands-on experience but also empowers them to build a tangible project that they can be proud of. This project is an excellent example of how to leverage cloud services to build a practical application. Whether you're a beginner looking to get hands-on experience or a seasoned developer, this project offers valuable insights into cloud computing and serverless architecture.