Skip to content

rohit1101/Cloud-Resume-Api-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Cloud Resume Api ☁️

This repo contains my solution for cloud resume api challenge using AWS Cloud and Google Cloud Platform.

🥇 AWS Cloud Solution

Technologies/Services 🚀

  • 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

Architecture and steps to complete the task

image
  • 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

Documentation links to lookout 👀


🥇 GCP Solution

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.

Architecture and steps to complete the task

image
  • 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.