Cloud Resume Challenge serverless - My Learning
Tags: aws, cloudskills, serverless
Published: 2021-05-05 09:33:22

#My Self:

I am an Oracle integration specialist working to deliver web services (SOAP and Rest Based) within the organization, Primarily working on the backend services which delivers content to the front end to display it in an attractive way. Till now I have used Oracle products in my daily work job and got an opportunity to work with AWS instances in my recent project, I thought it's a good opportunity to change my career path towards other cloud offerings and explore open source technologies like Python.

I have passed my AWS Architect Associate exam in April 2021 and joined the AWS Global community on Linkedin where I got to know about this challenge by #Forrest Brazeal (Cloud Architect, AWS Serverless Hero). Details of this challenge can be found [here](https://cloudresumechallenge.dev/instructions). I am very excited to build the solution as it gives me a chance to put into practice what I have learned by doing the certification.

#Coming, to the challenge

#Front end- HTML / CSS

I do not have any front-end experience before. I am a backend guy providing relevant data to the front end in XML or JSON format. I have built a simple HTML page with basic CSS in it, Referred to google a lot while writing it and [code pen](https://codepen.io/) helped me to check my editing on the fly.

# Static S3 Website

This is the only straightforward task for me in this challenge and able to do it quickly. Based on the knowledge I acquired during the preparation of AWS certifications, hosting a static website on S3 and using CloudFront for content distribution was easy. 

#DNS, CloudFront, HTTPS
I explored options of custom DNS providers like GoDaddy but narrowed it down to use Amazon Domain service Route 53(costs me few bucks, that's fine I am publishing the blog now). Tried to register the domain name of my choice but not available then picked up the domain name suggested by Amazon. Created a CloudFront distribution and configured Origin Access Identifier to point to static S3 bucket. Enabled HTTPS by getting an SSL certificate using Amazon Certificate Manager for the domain name.

#Database, Lambda, API Gateway, IAAC(Infrastructure as a code)

As part of my preparation for solution architect associate certification, I learned to provision Dynamo DB, Lambda, and API gateway from the AWS management console> I jumped to get my hands dirty with SAM(Serverless application model). Spent a lot of time, Played with a lot of templates available with Github projects of my fellow AWS folks. Configured AWS credentials, Installed SAM, Docker, Python, and other dependencies. Finally able to build it and deploy the stack with the guided option to AWS. (It took half a day of my weekend to make it work). Tested my API using postman and got expected results. The challenge for me is to understand how to write YAML and Python code, Rest all fallen in place (Thanks to SAM wonders!!)

Here is my cloud formation template in designer mode

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2urn0zu5d701mi1v1qn0.png)

#Javascript

Able to include the script in my HTML file but it's failing because of the Cross-origin resource sharing issue. Fixed it and it started working.

Tip: Make sure your Lambda accepts CORS for your requesting resource(Your domain)

#Source Control, CI/CD, Tests

Have used GITHUB as source control for my frontend and backend code. Used GIT actions on the push to the repository for both front end and backend repository. The front end is easy and straight forward but enabling continuous deployment for the backend took some time for me. Writing Python test scripts and calling them in my pipeline took some time but finally made it after spending some time.

Frontend CI Successful CD run

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u1srd95co64ak6j96ipo.PNG)

Backend CI Successful CD run

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n2zbgmgb35wgg10k88t5.PNG)

Here is the final version of not so fancy resume but lots of learning behind it: https://learncloudsolutionswithkishan.com/