<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: alexdziarn</title>
    <description>The latest articles on DEV Community by alexdziarn (@alexdziarn).</description>
    <link>https://dev.to/alexdziarn</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F430186%2Fcc484b22-c66a-421d-98a5-bd15fbe150bb.png</url>
      <title>DEV Community: alexdziarn</title>
      <link>https://dev.to/alexdziarn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alexdziarn"/>
    <language>en</language>
    <item>
      <title>My Thoughts After Completing the "Cloud Resume Challenge"</title>
      <dc:creator>alexdziarn</dc:creator>
      <pubDate>Mon, 13 Jul 2020 00:18:09 +0000</pubDate>
      <link>https://dev.to/alexdziarn/my-thoughts-after-completing-the-cloud-resume-challenge-4a0g</link>
      <guid>https://dev.to/alexdziarn/my-thoughts-after-completing-the-cloud-resume-challenge-4a0g</guid>
      <description>&lt;p&gt;When COVID-19 hit at end of March I was in school finishing up my last semester for my finance degree. Without having a job lined up after graduation and knowing that the job market is in decline, I wanted to learn something new. After doing some research, I decided on learning AWS. I started off by buying Stephane Maarek's three associate courses off udemy. I studied and passed the exams for the solutions architect, developer, and sysops in that order. After completing the last of the trifecta, I needed to find some projects to complete to fill in the gaps of my resume.&lt;/p&gt;

&lt;p&gt;While browsing /r/awscertifications somebody recommended the "Cloud Resume Challenge." This challenge took about a week to complete. This was a great learning experience since I have never coded in javascript or python or dealt with any serverless architectures in AWS before. It was helpful that I took a couple years of java in high school so that I was somewhat able to understand and write basic functions in javascript and python.  I'd like to share some of the problems I came across and how I solved them.&lt;/p&gt;

&lt;p&gt;The challenge can be found &lt;a href="https://cloudresumechallenge.dev/instructions/"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;skip step 1&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2-3: HTML and CSS
&lt;/h3&gt;

&lt;p&gt;These steps say to use html and css to make the front end of the webserver. I originally used codepens &lt;a href="https://codepen.io/emzarts/pen/OXzmym"&gt;default resume&lt;/a&gt; as a base to have something to show. I came back to these steps after I completed the rest of the steps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Static S3 Website
&lt;/h3&gt;

&lt;p&gt;In here I knew to uncheck the "Block all public access" box in the bucket permissions and enable static website hosting in the properties. I did not know that I had to assign a public policy to the bucket. Thankfully I found the steps in this &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/user-guide/static-website-hosting.html"&gt;aws documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5-6: HTTPS and DNS
&lt;/h3&gt;

&lt;p&gt;Honestly no problems here&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 7:
&lt;/h3&gt;

&lt;p&gt;This was my first time writing something in javascript. For the most part I had no problems googling and finding a way to extract data from an api. &lt;/p&gt;

&lt;p&gt;These videos by The Coding Train helped me understand how fetch works and how to use data sent from an api.&lt;br&gt;
[video 1]&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/tc8DU14qX6I"&gt;
&lt;/iframe&gt;
 &lt;br&gt;
[video 2]&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/uxf0--uiX0I"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 8-10: Database, API, and Python
&lt;/h3&gt;

&lt;p&gt;These steps wrap together DynamoDB, API Gateway, and Lambda to return a viewer count. According to step 12, I had to include all three of these resources in a SAM template. I first started off by copying the hello-world SAM template which included the template.yaml for a lambda function and API. It also included a python function used by lambda. I had to make some edits to the permissions of the lambda then I just added a DynamoDB table to the template. &lt;a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html"&gt;DyndamoDB cloudformation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This was my first time ever dealing with a yaml document. It took me about a day trying to figure out how yamls were formated and how to read documentation on all the resources. I also ran into a problem with cors when I tried getting the number of views from my api. My browser was telling me that I needed to have certain headers for cors to work. I thought I had to make a global default in my template to allow for cors and then I allowed for the headers the error in the browser gave me, but I still had the same problem. I was stuck on this problem for a day, until I came across a "how to" post on google which returned a headers key and value in the python function. After implementing this, my error was gone. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z-mGVlXU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/ZbUh2dU.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z-mGVlXU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/ZbUh2dU.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 11: Tests
&lt;/h3&gt;

&lt;p&gt;My python test would compare the output of my lambda function and to what is in the DynamoDB table. If the numbers were the same, it would pass the test.&lt;/p&gt;

&lt;p&gt;I had a big problem with understanding the difference between python dictionaries and json. As I said before I'm a newbie when it comes to python so this kind of stuff is tricky for me. This stackoverflow image helped me get a better understanding between them &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gaa3DCRn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/sSz6WFe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gaa3DCRn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/sSz6WFe.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 12: Infrastructure as Code
&lt;/h3&gt;

&lt;p&gt;SAM&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 13: Source Control
&lt;/h3&gt;

&lt;p&gt;This step asks for us to put all of our code and resources into a github repository. I had never used github before so I looked up a video to help teach me. &lt;iframe width="710" height="399" src="https://www.youtube.com/embed/0fKg7e37bQE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 14-15: CI/CD
&lt;/h3&gt;

&lt;p&gt;These steps asked to use github actions to help automate the deployment to the backend and frontend. I used the github marketplace to find all the workflow jobs needed for deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I ran into some hiccups along the way, but Googling and Youtube tutorials really helped me get through. If you are someone looking to get into aws, I definitely recommend the Cloud Resume Challenge. You will learn so much more that's not on the aws certification exams.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://alexdziarnowski.com/"&gt;My Resume Website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alex Dziarnowski&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
