A Cloud Guru Associate Community Training Architect Gwyneth Pena-Siguenza recently launched the #CloudGuruChallenge: Your resume in Azure challenge. The goal is to create an online version of your resume in Azure to build your cloud skills. Gwyn talks more about the challenge on her YouTube channel.
I decided to take this challenge on as a way to bolster my Azure skills. Working on a project is the best way to build skills. You often run into problems or challenges that require diving deeper into the technology, thereby building knowledge.
Links to the full series:
- Azure Resume Challenge – Part 1: Creating the website and Azure resources (this post)
- Azure Resume Challenge – Part 2: Integrating CDN and HTTPS
- Azure Resume Challenge – Part 3: Adding the Visitor Counter
- Azure Resume Challenge – Part 4: Deploying with GitHub Actions
Storing the Project in GitHub
At the end of this project, I want to deploy website updates automatically out to Azure. With this in mind, I created a repository out in GitHub to store the project artifacts. I cloned the empty repository to my laptop. You can view the repository here:
Building the Website
Following Gwen’s advice in the announcement post, I copied this free resume template to a folder named website in my project repo. I customized the text to put some information about myself, certifications, and previous experience.
Creating the Azure Resources
There is a new Azure service call Azure Static Web Apps that automatically builds and deploys full stack web apps from a code repository. While this service is purpose built for this project, Azure Static Web Apps is still in public preview at the time of this writing. That will be another project for the future.
Using the Azure CLI, I created a resource group and storage account. In the storage account, I enabled the static website hosting and uploaded the website content to the storage account. Finally, I retrieved the default website URL to verify the site loads.
I wrote a PowerShell script to deploy the resources. The script is basic and doesn’t have any error handling, but it deploys all the resources that I need so far. You can view the script in the project repo:
Deploying the Website
As part of the build script, I uploaded the website files from my local system to the $web container in the storage account. The script ends with displaying the default URL for the website in the storage account. You can view my site so far here.
If you don’t use the above script to display the website URL, navigate to your storage account to Settings > Static website. Here you enable or disable the static website using the blob service, retrieve the primary endpoint URL, and configure the index and error document names.
I need to enable HTTPs and custom domain support. Given I already have a domain, I may just put a CNAME record to point to the default website URL. It probably depends on how much a new domain is going to cost. I also need to implement the visitor counter using an Azure Function and Cosmos DB.