This repo contains my solution for cloud resume api challenge using AWS Cloud and Google Cloud Platform.
- Web server: Node.js
- Serverless Service: AWS Lambda, GCP Cloud Functions
- Database: AWS Dynamo DB, GCP Cloud Firestore
- Nodejs version: v20.14.0 LTS
- CI: Github Actions
- The way I implemented the solution for this challenge is by setting up an HTTP API using API Gateway which will trigger the Lambda function to get the data from Dynamo DB.
- We have to create an IAM Lambda execution role and attach it to the lambda function which allows our function runtime to interact with Dynamo DB to the get the data.
- Users can access the API Gateway endpoint(https) deployment link which will trigger the lambda function to get the resume data from dynamoDB
- Use this schema for customising your resume.
- Resume api endpoint: get-my-resume
Finally after a bit of delay, I have implemented the GCP solution for this challenge.
I wanted to implement multi-cloud solution to learn another cloud provider by transferring knowledge which I have already gained with AWS and to know the pros and cons of GCP and AWS.
- The way I implemented the solution for this challenge is by setting up an HTTP public GCP Cloud function using node.js which will fetch the data from Firestore
- We have to create a service account with very minimal permissions to make Cloud Function communicate with Cloud Firestore DB; the following are the permissions to accomplish the task:
Cloud Functions Admin Cloud Run Invoker Firebase Admin
- Make sure you provide only
read-only-access
for the Firestore DB to avoid public write access
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read: if true;
allow write: if false;
}
}
}
- Users can access the Cloud Function with the functions URL: get-my-resume
- Use this schema for customising your resume.