👋 👋 👋 👋 👋
#CloudGuruChallenge
Resume Coming Soon ⭐ ⭐ ⭐
My Personal Resume Built on Azure from scratch for the (Frontend) as part of the Cloud Resume Challenge by @forrest Brazeal
Steps Involved:
- ✅ HTML: Write in HTML
- ✅ CSS: Style with CSS
- ✅ Static Website: Deploy online using Azure Storage
- ✅ HTTPS: URL should be HTTPS Azure CDN will help with this)
- ✅ DNS: Point custom DNS Domain to CDN endpoint
- ✅ JavaScript: Write JavaScript script to count visitors to site
- ✅ Database: Retrieve and update count with Azure CosmosDB (serverless)
- ✅ API: communicates with database | Azure Functions w/ HTTP trigger
- ✅ Python: Explore Python with Azure Functions
- Test: Write test for Python Code
- IAC: Define Infrestructure as Code in Azure Resource Manager ARM (Consumption Plan)
- Source Control: Use GitHub Actions Workflows
- CI/CD (Backend): GitHub Actions Workflows Backend
- CI/CD (Frontend): GitHub Actions Workflows Frontend
- Blog Post: Hashnode
My version of the code found Below
https://github.com/BenjaminBurton/MicrosoftAzureResume
- ✅ Create Azure Account
- ✅ Create Github Repo An connect to laptop (git init)
- ✅ Structured site with files and folders
- ✅ Coded Site In HTML & CSS
- ✅ Used Azure command line interface (CLI)
- ✅ Storage account created successfully
- ✅ Deployed code to Azure static website
- ✅ Created CDN endoint
- ✅ Turned on HTTPS for CDN endpoint
- ✅ Connected custom Domain name to CDN endpoint
- ✅ Custom domain showing site successfully
- ✅ Write a script that counts the number of visits to the site script documentation also there is a really good resource by Gwyn from A Cloud Guru
- ✅ Created .env file for calling variable
- ✅ Created a database with cosmosDB.
- ✅ Did a quick launch and added the database name and container.
- ✅ Items in database setup successful
- ✅ If you have an issue with being able to develop in the portal go to your function and select deployment center and disable all neccesary connections, also check your GitHub and disconnect your apps if you want to develop in portal
- ✅ Using VsCode to install dependencies an scripts
- ✅ HTTP trigger created in azure function via VSCode w/ NodeJS
- ✅ To access the Tables API Inside of CosmosDB selected create DB and select Table API
- ✅ added reference to access the Tables storage service through the code " using Microsoft.Azure.Cosmos.Table ";
- ✅ A connection string for AuthN can be retrieved from the portal.
- ✅ To store and retrieve the tables through a key we need URL for the Value of view count.
- ✅ The code connects and accesses thr Tables through the API package created and installed with CosmosDB
- ✅ Wrote a bit of Python for azure http trigger.
- Will add steps (to be continued . . . )
- You should also include some tests for your Python code. Here are some resources on writing good Python tests.
- You should not be configuring your API resources – the Azure Function, the CosmosDB – manually, by clicking around in the Azure console. Instead, define them in an Azure Resource Manager (ARM) template on a Consumption plan. This is called “infrastructure as code” or IaC. It saves you time in the long run.
- You do not want to be updating either your back-end API or your front-end website by making calls from your laptop, though. You want them to update automatically whenever you make a change to the code. (This is called continuous integration and deployment, or CI/CD.) Create a GitHub repository for your backend code.
- Set up GitHub Actions such that when you push an update to your ARM template or Python code, your Python tests get run. If the tests pass, the ARM application should get packaged and deployed to Azure.
- Create a second GitHub repository for your website code. Create GitHub Actions such that when you push new website code, the Azure Storage blob automatically gets updated. (You may need to purge your Azure CDN endpoint in the code as well.) Important note: DO NOT commit Azure credentials to source control! Bad hats will find them and use them against you!
- Write about experience to Blog site HashNode
- ❌ Actively Finding resolution to Issue
- ❌ Actively Finding resolutions to Issues