<?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: Nelson Akpa</title>
    <description>The latest articles on DEV Community by Nelson Akpa (@nelson_akpa01).</description>
    <link>https://dev.to/nelson_akpa01</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%2F2920228%2Ffd5c847f-765c-499a-871b-71d249caf242.jpg</url>
      <title>DEV Community: Nelson Akpa</title>
      <link>https://dev.to/nelson_akpa01</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nelson_akpa01"/>
    <language>en</language>
    <item>
      <title>Deploying An Azure Virtual Machine Scale Set Using Terraform.</title>
      <dc:creator>Nelson Akpa</dc:creator>
      <pubDate>Wed, 08 Oct 2025 14:57:27 +0000</pubDate>
      <link>https://dev.to/nelson_akpa01/deploying-an-azure-virtual-machine-scale-set-using-terraform-and-pushing-it-to-github-2kh4</link>
      <guid>https://dev.to/nelson_akpa01/deploying-an-azure-virtual-machine-scale-set-using-terraform-and-pushing-it-to-github-2kh4</guid>
      <description>&lt;p&gt;&lt;strong&gt;Table Of Contents&lt;/strong&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;VMSS and its components.&lt;/li&gt;
&lt;li&gt;What is Terraform?&lt;/li&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;Prepare environment &amp;amp; authenticate to Azure.&lt;/li&gt;
&lt;li&gt;Create a local Terraform project with modular .tf files.&lt;/li&gt;
&lt;li&gt;Initialize / Plan / Apply (local)&lt;/li&gt;
&lt;li&gt;Verify&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;🚀 &lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Deploying an Azure Virtual Machine Scale Set Using Terraform&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In today’s cloud-first world, scalability and automation are non-negotiable. This article explores how to deploy Azure Virtual Machine Scale Sets using Terraform, a powerful Infrastructure as Code (IaC) tool that enables consistent, repeatable, and efficient cloud provisioning. Whether building resilient applications or optimizing resource management, this guide walks you through the essentials of defining, deploying, and managing VM scale sets with Terraform, unlocking the full potential of Azure’s elastic compute capabilities.&lt;/p&gt;

&lt;p&gt;🚀&lt;strong&gt;VMSS and its components&lt;/strong&gt;&lt;br&gt;
Virtual Machine Scale Sets (VMSS) allow you to create and manage a group of identical,&lt;br&gt;
load-balanced virtual machines (VMs). Think of them as a way to automatically increase or&lt;br&gt;
decrease computing power based on demand—similar to how supermarkets bring in more cashiers&lt;br&gt;
when there are many customers, and fewer when the store is quiet.&lt;br&gt;
&lt;strong&gt;Example:&lt;/strong&gt; Imagine a movie theater. On a normal weekday afternoon, only one or two&lt;br&gt;
ticket counters may be open. But on Friday night, when crowds rush in, more counters open&lt;br&gt;
automatically. VM Scale Sets work in the same way—automatically adding or removing 'counters'&lt;br&gt;
(VMs) depending on the number of 'customers' (requests) arriving.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomtc3d0qs3o42cv3sput.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomtc3d0qs3o42cv3sput.png" alt="Des" width="800" height="192"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Key Benefits of VM Scale Sets:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Scaling:&lt;/strong&gt; Handles traffic spikes without manual
intervention. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Load Balancing:&lt;/strong&gt; Ensures no single VM is overloaded. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High Availability: Keeps your app running even if some VMs fail. - **Cost Efficiency:&lt;/strong&gt; You only pay for what you use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Another Analogy:&lt;/strong&gt; Think of VM Scale Sets like ride-hailing services (e.g., Uber). During peak&lt;br&gt;
hours, more drivers appear on the road (scaling out). Fewer drivers are available at night when demand is low (scaling in). This ensures efficiency and availability without wasting resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In summary&lt;/strong&gt;, Virtual Machine Scale Sets are like having a flexible team that grows or shrinks&lt;br&gt;
automatically, ensuring smooth operations and optimized costs—whether you're running a small&lt;br&gt;
website or a large-scale application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Terraform?&lt;/strong&gt;&lt;br&gt;
Terraform is an open-source &lt;strong&gt;Infrastructure as Code (IaC)&lt;/strong&gt; tool developed by HashiCorp. It allows you to define and provision cloud infrastructure using declarative configuration files. Instead of manually creating resources through a cloud portal, you write code that describes the desired infrastructure state, and Terraform handles the deployment and updates.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffw9aehn2rt4yw31ey79k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffw9aehn2rt4yw31ey79k.png" alt="joop" width="800" height="338"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Why Terraform?&lt;/strong&gt;&lt;br&gt;
We use Terraform to deploy a &lt;strong&gt;Virtual Machine Scale Set (VMSS)&lt;/strong&gt; in Azure because it offers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔁 &lt;strong&gt;Repeatability&lt;/strong&gt;: You can deploy identical environments (e.g., dev, test, prod) using the same configuration.&lt;/li&gt;
&lt;li&gt;⚙️ &lt;strong&gt;Automation&lt;/strong&gt;: Terraform automates the creation, scaling, and management of VM instances.&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;Version Control&lt;/strong&gt;: Infrastructure changes are tracked in source control (e.g., GitHub), enabling collaboration and rollback.&lt;/li&gt;
&lt;li&gt;📈 &lt;strong&gt;Scalability&lt;/strong&gt;: VMSS can automatically adjust the number of VMs based on demand, and Terraform makes configuring autoscale rules seamless.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s turn infrastructure into code—and scale like a pro.&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;br&gt;
The following are the prerequisites needed for this task. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VsCode&lt;/li&gt;
&lt;li&gt;Azure subscription and permissions to create resources (or ask an admin).&lt;/li&gt;
&lt;li&gt;Azure CLI installed (az) and logged in, or Service Principal credentials.&lt;/li&gt;
&lt;li&gt;Terraform CLI (&amp;gt;= 1.4 recommended).&lt;/li&gt;
&lt;li&gt;Git and (optionally) GitHub CLI (gh).&lt;/li&gt;
&lt;li&gt;An SSH key pair for VM admin access (~/.ssh/id_rsa.pub).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🚀 &lt;strong&gt;Prepare environment &amp;amp; authenticate to Azure.&lt;/strong&gt;&lt;br&gt;
A. Authenticate to Azure&lt;br&gt;
Interactive (dev machine)&lt;br&gt;
Open your VSCode, create your project name first as "VMSS"&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fztygwfz55ie6ixviih3y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fztygwfz55ie6ixviih3y.png" alt="Done" width="800" height="444"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenmbh809wnamrmx1tgem.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenmbh809wnamrmx1tgem.png" alt="nao" width="800" height="444"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff37vitiad5rt7pl2qzdh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff37vitiad5rt7pl2qzdh.png" alt="bev" width="800" height="355"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99lgydjt6opsr8evvbtr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99lgydjt6opsr8evvbtr.png" alt="op" width="800" height="299"&gt;&lt;/a&gt;&lt;br&gt;
mkdir vmss-terraform        #this creates a directory.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fybynm3wp91hd86z8mcsp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fybynm3wp91hd86z8mcsp.png" alt="opp" width="800" height="291"&gt;&lt;/a&gt;&lt;br&gt;
cd vmss-terraform           #this gets you into the root directory&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgibzsw7rjwmrpjmaga04.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgibzsw7rjwmrpjmaga04.png" alt="pat" width="800" height="26"&gt;&lt;/a&gt;&lt;br&gt;
Then, log in to Azure&lt;br&gt;
az login                    #this pops your AZ account.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F41jtagvwy3w9vs9auxs1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F41jtagvwy3w9vs9auxs1.png" alt="bop" width="800" height="243"&gt;&lt;/a&gt;&lt;br&gt;
B. Service Principal (recommended for CI)&lt;br&gt;
Run the following, and replace the  with yours. &lt;br&gt;
az ad sp create-for-rbac --name "&lt;a href="http://tf-vmss-sp" rel="noopener noreferrer"&gt;http://tf-vmss-sp&lt;/a&gt;" \&lt;br&gt;
  --role "Contributor" \&lt;br&gt;
  --scopes "/subscriptions/"&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldeeg629x71id7ls8nz9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldeeg629x71id7ls8nz9.png" alt="gem" width="800" height="125"&gt;&lt;/a&gt;&lt;br&gt;
Save the output (appId, password, tenant).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "appId": "6d509bb1-981f-4193-ad42-05bf45e72f12",
  "displayName": "http://tf-vmss-sp",
  "password": "epe8Q~hRGUg7f5hrBK_Pl~4N3wml1PutgPSiqaMn",
  "tenant": "01d4fe9c-2658-4141-be2f-b1f11eca9673"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then export env vars for Terraform by replacing them with the actual values, and run them collectively in the terminal. &lt;/p&gt;

&lt;p&gt;export ARM_SUBSCRIPTION_ID="14e8ed5c-bc41-4d1b-b5b7-ff9419e2f0d6"&lt;br&gt;
export ARM_CLIENT_ID="6d509bb1-981f-4193-ad42-05bf45e72f12"&lt;br&gt;
export ARM_CLIENT_SECRET="epe8Q~hRGUg7f5hrBK_Pl~4N3wml1PutgPSiqaMn"&lt;br&gt;
export ARM_TENANT_ID="01d4fe9c-2658-4141-be2f-b1f11eca9673"&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvedi1gng7rk7hh6ce13s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvedi1gng7rk7hh6ce13s.png" alt="ban" width="800" height="93"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀&lt;strong&gt;Create a local Terraform project with modular .tf files.&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create project directory &amp;amp; layout
setup-backend.sh
vmss-terraform/
├─ setup-backend.sh
├─ backend.tf
├─ frontend.tf
├─ main.tf            # provider + top-level resources (or split)
├─ variables.tf
├─ network.tf
├─ compute.tf
├─ autoscale.tf
├─ outputs.tf
├─ user-data.sh       # cloud-init to install nginx (optional)
├─ versions.tf
└─ .gitignore&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;touch setup-backend.sh&lt;/strong&gt;   (paste the script below into it)&lt;/p&gt;

&lt;h1&gt;
  
  
  !/bin/bash
&lt;/h1&gt;

&lt;h1&gt;
  
  
  ------------------------------------------------------------------
&lt;/h1&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;setup-backend.sh&lt;/strong&gt;
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Creates an Azure Storage backend for Terraform remote state
&lt;/h1&gt;

&lt;h1&gt;
  
  
  ------------------------------------------------------------------
&lt;/h1&gt;

&lt;h1&gt;
  
  
  ====== CONFIGURABLE VARIABLES ======
&lt;/h1&gt;

&lt;p&gt;RESOURCE_GROUP_NAME="terraform-state-rg"&lt;br&gt;
LOCATION="westus3"&lt;br&gt;
STORAGE_ACCOUNT_NAME="tfstate$(openssl rand -hex 3 | tr -d '\n' | tr '[:upper:]' '[:lower:]')"  # ensures uniqueness&lt;br&gt;
CONTAINER_NAME="tfstate"&lt;br&gt;
KEY_NAME="vmss.terraform.tfstate"&lt;/p&gt;

&lt;h1&gt;
  
  
  ====================================
&lt;/h1&gt;

&lt;p&gt;echo "🔍 Checking Azure CLI login..."&lt;br&gt;
if ! az account show &amp;gt;/dev/null 2&amp;gt;&amp;amp;1; then&lt;br&gt;
echo "❌ You are not logged in to Azure CLI. Run: az login"&lt;br&gt;
exit 1&lt;br&gt;
fi&lt;/p&gt;

&lt;p&gt;SUBSCRIPTION_ID=$(az account show --query id -o tsv)&lt;br&gt;
echo "✅ Using Azure Subscription: $SUBSCRIPTION_ID"&lt;/p&gt;

&lt;p&gt;echo "🚀 Creating resource group if not exists..."&lt;br&gt;
az group create --name "$RESOURCE_GROUP_NAME" --location "$LOCATION" &amp;gt;/dev/null&lt;/p&gt;

&lt;p&gt;echo "💾 Creating storage account: $STORAGE_ACCOUNT_NAME ..."&lt;br&gt;
az storage account create &lt;br&gt;
--name "$STORAGE_ACCOUNT_NAME" &lt;br&gt;
--resource-group "$RESOURCE_GROUP_NAME" &lt;br&gt;
--location "$LOCATION" &lt;br&gt;
--sku Standard_LRS &lt;br&gt;
--encryption-services blob &amp;gt;/dev/null&lt;/p&gt;

&lt;p&gt;echo "📦 Creating blob container: $CONTAINER_NAME ..."&lt;br&gt;
az storage container create &lt;br&gt;
--name "$CONTAINER_NAME" &lt;br&gt;
--account-name "$STORAGE_ACCOUNT_NAME" &amp;gt;/dev/null&lt;/p&gt;

&lt;h1&gt;
  
  
  Print summary
&lt;/h1&gt;

&lt;p&gt;ACCOUNT_KEY=$(az storage account keys list &lt;br&gt;
--resource-group "$RESOURCE_GROUP_NAME" &lt;br&gt;
--account-name "$STORAGE_ACCOUNT_NAME" &lt;br&gt;
--query "[0].value" -o tsv)&lt;/p&gt;

&lt;p&gt;echo ""&lt;br&gt;
echo "✅ Terraform backend storage created successfully!"&lt;br&gt;
echo ""&lt;br&gt;
echo "🧩 Use the following values in your backend.tf file:"&lt;br&gt;
echo "---------------------------------------------------"&lt;br&gt;
echo "resource_group_name  = "$RESOURCE_GROUP_NAME""&lt;br&gt;
echo "storage_account_name = "$STORAGE_ACCOUNT_NAME""&lt;br&gt;
echo "container_name       = "$CONTAINER_NAME""&lt;br&gt;
echo "key                  = "$KEY_NAME""&lt;br&gt;
echo "---------------------------------------------------"&lt;br&gt;
echo ""&lt;br&gt;
echo "🔑 Storage Account Key (keep secret):"&lt;br&gt;
echo "$ACCOUNT_KEY"&lt;br&gt;
echo ""&lt;br&gt;
echo "💡 Example: Run 'terraform init -reconfigure' after updating backend.tf."&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zm88pnapyjnvhlt7ebv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zm88pnapyjnvhlt7ebv.png" alt="don" width="800" height="634"&gt;&lt;/a&gt;&lt;br&gt;
Make it executable by running the code below &lt;br&gt;
chmod +x setup-backend.sh&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F60v1pexc5jiwvlkp88iv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F60v1pexc5jiwvlkp88iv.png" alt="vop" width="800" height="30"&gt;&lt;/a&gt;&lt;br&gt;
Run it with the code below;&lt;br&gt;
./setup-backend.sh&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fngvx71ccria44w11tkf7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fngvx71ccria44w11tkf7.png" alt="pol" width="800" height="81"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdq0zt61f71krkffyc3xc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdq0zt61f71krkffyc3xc.png" alt="lop" width="800" height="614"&gt;&lt;/a&gt;&lt;br&gt;
Update your backend.tf file with the actual values below;&lt;br&gt;
(resource_group_name  = terraform-state-rg&lt;br&gt;
storage_account_name = tfstatee0133f&lt;br&gt;
container_name       = tfstate&lt;br&gt;
key                  = vmss.terraform.tfstate)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;touch backend.tf&lt;/strong&gt;      (paste the script below into it) &lt;/p&gt;

&lt;p&gt;terraform {&lt;br&gt;
  backend "azurerm" {&lt;br&gt;
    resource_group_name  = "terraform-state-rg"&lt;br&gt;
    storage_account_name = "tfstatee0133f" &lt;br&gt;
    container_name       = "tfstate"&lt;br&gt;
    key                  = "vmss.terraform.tfstate"&lt;br&gt;
  }&lt;br&gt;
}&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8oby3jj1lwr1gh6ncql.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8oby3jj1lwr1gh6ncql.png" alt="get" width="800" height="314"&gt;&lt;/a&gt;&lt;br&gt;
Run 'terraform init -reconfigure' after updating backend.tf&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F51o8g02cp573ht36up68.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F51o8g02cp573ht36up68.png" alt="opo" width="800" height="174"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Re-run&lt;/strong&gt;&lt;br&gt;
chmod +x setup-backend.sh &amp;amp;&amp;amp; ./setup-backend.sh&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw40ok0ma8jdmqy3bhn5n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw40ok0ma8jdmqy3bhn5n.png" alt="gap" width="800" height="336"&gt;&lt;/a&gt;&lt;br&gt;
The script has some formatting issues with line breaks in the Azure CLI commands. Let's manually create the storage account with the name it generated (tfstateb3ecc2):&lt;br&gt;
&lt;strong&gt;az storage container create --name tfstate --account-name tfstateb3ecc2&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsb595w9oo4a6kyc30ang.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsb595w9oo4a6kyc30ang.png" alt="kop" width="800" height="523"&gt;&lt;/a&gt;&lt;br&gt;
Now, let's create the container&lt;br&gt;
az storage container create --name tfstate --account-name tfstateb3ecc2&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv6u2f3sv7m6k9syto9ma.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv6u2f3sv7m6k9syto9ma.png" alt="pop" width="800" height="426"&gt;&lt;/a&gt;&lt;br&gt;
Run the code below &lt;br&gt;
terraform init -reconfigure&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff3lvzrn9ut3y9sao06kx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff3lvzrn9ut3y9sao06kx.png" alt="kol" width="800" height="640"&gt;&lt;/a&gt;&lt;br&gt;
touch frontend.tf      (paste the code below into it)&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;frontend.tf&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;resource "azurerm_public_ip" "frontend_pip" {&lt;br&gt;
  name                = "vmss-frontend-pip"&lt;br&gt;
  location            = azurerm_resource_group.rg.location&lt;br&gt;
  resource_group_name = azurerm_resource_group.rg.name&lt;br&gt;
  allocation_method   = "Static"&lt;br&gt;
  domain_name_label   = "vmss-frontend-${random_string.fqdn.result}"&lt;br&gt;
  sku                 = "Standard"&lt;br&gt;
  tags                = var.tags&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;resource "azurerm_lb" "frontend_lb" {&lt;br&gt;
  name                = "vmss-frontend-lb"&lt;br&gt;
  location            = azurerm_resource_group.rg.location&lt;br&gt;
  resource_group_name = azurerm_resource_group.rg.name&lt;br&gt;
  sku                 = "Standard"&lt;/p&gt;

&lt;p&gt;frontend_ip_configuration {&lt;br&gt;
    name                 = "PublicFrontendIP"&lt;br&gt;
    public_ip_address_id = azurerm_public_ip.frontend_pip.id&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;tags = var.tags&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;resource "azurerm_lb_backend_address_pool" "frontend_bepool" {&lt;br&gt;
  loadbalancer_id = azurerm_lb.frontend_lb.id&lt;br&gt;
  name            = "FrontendBackendPool"&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;resource "azurerm_lb_probe" "frontend_probe" {&lt;br&gt;
  loadbalancer_id = azurerm_lb.frontend_lb.id&lt;br&gt;
  name            = "http-probe"&lt;br&gt;
  protocol        = "Tcp"&lt;br&gt;
  port            = var.application_port&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;resource "azurerm_lb_rule" "frontend_rule" {&lt;br&gt;
  loadbalancer_id                = azurerm_lb.frontend_lb.id&lt;br&gt;
  name                           = "http-rule"&lt;br&gt;
  protocol                       = "Tcp"&lt;br&gt;
  frontend_port                  = var.application_port&lt;br&gt;
  backend_port                   = var.application_port&lt;br&gt;
  frontend_ip_configuration_name = "PublicFrontendIP"&lt;br&gt;
  backend_address_pool_ids       = [azurerm_lb_backend_address_pool.frontend_bepool.id]&lt;br&gt;
  probe_id                       = azurerm_lb_probe.frontend_probe.id&lt;br&gt;
}&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp24fbl6pqzycom0ruzdg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp24fbl6pqzycom0ruzdg.png" alt="bog" width="800" height="653"&gt;&lt;/a&gt;&lt;br&gt;
touch main.tf        (paste the code below into it)&lt;br&gt;
provider "azurerm" { &lt;br&gt;
    features {} &lt;br&gt;
    } &lt;br&gt;
resource "random_string" "fqdn" {&lt;br&gt;
  length  = 6&lt;br&gt;
  upper   = false&lt;br&gt;
  special = false&lt;br&gt;
  numeric = false&lt;br&gt;
} &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8yhbz3xji4xpgmeki23m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8yhbz3xji4xpgmeki23m.png" alt="pol" width="800" height="428"&gt;&lt;/a&gt;&lt;br&gt;
touch variables.tf               (paste the code below into it)&lt;br&gt;
variable "resource_group_name" {&lt;br&gt;
  type    = string&lt;br&gt;
  default = "terraform-vmss-rg"&lt;br&gt;
}&lt;br&gt;
variable "location" {&lt;br&gt;
  type    = string&lt;br&gt;
  default = "westus3"&lt;br&gt;
}&lt;br&gt;
variable "admin_user" {&lt;br&gt;
  type    = string&lt;br&gt;
  default = "azureuser"&lt;br&gt;
}&lt;br&gt;
variable "ssh_public_key_path" {&lt;br&gt;
  type    = string&lt;br&gt;
  default = "~/.ssh/id_rsa.pub"&lt;br&gt;
}&lt;br&gt;
variable "instances" {&lt;br&gt;
  type    = number&lt;br&gt;
  default = 2&lt;br&gt;
}&lt;br&gt;
variable "vm_size" {&lt;br&gt;
  type    = string&lt;br&gt;
  default = "Standard_DS1_v2"&lt;br&gt;
}&lt;br&gt;
variable "application_port" {&lt;br&gt;
  type    = number&lt;br&gt;
  default = 80&lt;br&gt;
}&lt;br&gt;
variable "tags" {&lt;br&gt;
  type = map(string)&lt;br&gt;
  default = {&lt;br&gt;
    env     = "dev"&lt;br&gt;
    project = "vmss-demo"&lt;br&gt;
  }&lt;br&gt;
}&lt;br&gt;
&lt;strong&gt;touch network.tf&lt;/strong&gt;       (paste the code below into it) &lt;br&gt;
resource "azurerm_resource_group" "rg" {&lt;br&gt;
  name     = var.resource_group_name&lt;br&gt;
  location = var.location&lt;br&gt;
  tags     = var.tags&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;resource "azurerm_virtual_network" "vnet" {&lt;br&gt;
  name                = "vmss-vnet"&lt;br&gt;
  location            = azurerm_resource_group.rg.location&lt;br&gt;
  resource_group_name = azurerm_resource_group.rg.name&lt;br&gt;
  address_space       = ["10.0.0.0/16"]&lt;br&gt;
  tags                = var.tags&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;resource "azurerm_subnet" "subnet" {&lt;br&gt;
  name                 = "vmss-subnet"&lt;br&gt;
  resource_group_name  = azurerm_resource_group.rg.name&lt;br&gt;
  virtual_network_name = azurerm_virtual_network.vnet.name&lt;br&gt;
  address_prefixes     = ["10.0.2.0/24"]&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;resource "azurerm_public_ip" "vmss_pip" {&lt;br&gt;
  name                = "vmss-public-ip"&lt;br&gt;
  location            = azurerm_resource_group.rg.location&lt;br&gt;
  resource_group_name = azurerm_resource_group.rg.name&lt;br&gt;
  allocation_method   = "Static"&lt;br&gt;
  domain_name_label   = "vmss-demo-${random_string.fqdn.result}"&lt;br&gt;
  tags                = var.tags&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;resource "azurerm_lb" "lb" {&lt;br&gt;
  name                = "vmss-lb"&lt;br&gt;
  location            = azurerm_resource_group.rg.location&lt;br&gt;
  resource_group_name = azurerm_resource_group.rg.name&lt;/p&gt;

&lt;p&gt;frontend_ip_configuration {&lt;br&gt;
    name                 = "PublicIPAddress"&lt;br&gt;
    public_ip_address_id = azurerm_public_ip.vmss_pip.id&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;tags = var.tags&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;resource "azurerm_lb_backend_address_pool" "bpepool" {&lt;br&gt;
  loadbalancer_id = azurerm_lb.lb.id&lt;br&gt;
  name            = "BackEndPool"&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;resource "azurerm_lb_probe" "http_probe" {&lt;br&gt;
  loadbalancer_id = azurerm_lb.lb.id&lt;br&gt;
  name            = "http-probe"&lt;br&gt;
  port            = var.application_port&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;resource "azurerm_lb_rule" "http" {&lt;br&gt;
  loadbalancer_id                = azurerm_lb.lb.id&lt;br&gt;
  name                           = "http"&lt;br&gt;
  protocol                       = "Tcp"&lt;br&gt;
  frontend_port                  = var.application_port&lt;br&gt;
  backend_port                   = var.application_port&lt;br&gt;
  frontend_ip_configuration_name = "PublicIPAddress"&lt;br&gt;
  backend_address_pool_ids       = [azurerm_lb_backend_address_pool.bpepool.id]&lt;br&gt;
  probe_id                       = azurerm_lb_probe.http_probe.id&lt;br&gt;
}&lt;br&gt;
&lt;strong&gt;touch compute.tf&lt;/strong&gt;              ( paste the code below into it) &lt;br&gt;
resource "azurerm_virtual_machine_scale_set" "vmss" {&lt;br&gt;
  name                = "tf-vmss"&lt;br&gt;
  location            = azurerm_resource_group.rg.location&lt;br&gt;
  resource_group_name = azurerm_resource_group.rg.name&lt;br&gt;
  upgrade_policy_mode = "Manual"&lt;/p&gt;

&lt;p&gt;sku {&lt;br&gt;
    name     = var.vm_size&lt;br&gt;
    tier     = "Standard"&lt;br&gt;
    capacity = var.instances&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;storage_profile_image_reference {&lt;br&gt;
    publisher = "Canonical"&lt;br&gt;
    offer     = "UbuntuServer"&lt;br&gt;
    sku       = "22_04-lts"&lt;br&gt;
    version   = "latest"&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;storage_profile_os_disk {&lt;br&gt;
    caching           = "ReadWrite"&lt;br&gt;
    create_option     = "FromImage"&lt;br&gt;
    managed_disk_type = "Standard_LRS"&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;os_profile {&lt;br&gt;
    computer_name_prefix = "vmss"&lt;br&gt;
    admin_username       = var.admin_user&lt;br&gt;
    # NOTE: for demo simplicity MS sample uses a password. For production, prefer SSH keys or orchestrated VMSS with ssh keys.&lt;br&gt;
    admin_password = "ReplaceThisWithASecurePassword123!"&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;os_profile_linux_config {&lt;br&gt;
    disable_password_authentication = false&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;network_profile {&lt;br&gt;
    name    = "terraformnetworkprofile"&lt;br&gt;
    primary = true&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ip_configuration {
  name                                   = "IPConfiguration"
  subnet_id                              = azurerm_subnet.subnet.id
  load_balancer_backend_address_pool_ids = [azurerm_lb_backend_address_pool.bpepool.id]
  primary                                = true
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;tags = var.tags&lt;br&gt;
}&lt;br&gt;
touch autoscale.tf                 (paste the code below into it)&lt;br&gt;
resource "azurerm_monitor_autoscale_setting" "autoscale" {&lt;br&gt;
  name                = "vmss-autoscale"&lt;br&gt;
  location            = azurerm_resource_group.rg.location&lt;br&gt;
  resource_group_name = azurerm_resource_group.rg.name&lt;br&gt;
  target_resource_id  = azurerm_virtual_machine_scale_set.vmss.id&lt;br&gt;
  enabled             = true&lt;/p&gt;

&lt;p&gt;profile {&lt;br&gt;
    name = "autoscale"&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;capacity {
  default = var.instances
  minimum = 1
  maximum = 5
}

rule {
  metric_trigger {
    metric_name        = "Percentage CPU"
    metric_resource_id = azurerm_virtual_machine_scale_set.vmss.id
    operator           = "GreaterThan"
    statistic          = "Average"
    time_aggregation   = "Average"
    time_window        = "PT2M"
    time_grain         = "PT1M"
    threshold          = 75
  }

  scale_action {
    direction = "Increase"
    type      = "ChangeCount"
    value     = "1"
    cooldown  = "PT5M"
  }
}

rule {
  metric_trigger {
    metric_name        = "Percentage CPU"
    metric_resource_id = azurerm_virtual_machine_scale_set.vmss.id
    operator           = "LessThan"
    statistic          = "Average"
    time_aggregation   = "Average"
    time_window        = "PT2M"
    time_grain         = "PT1M"
    threshold          = 25
  }

  scale_action {
    direction = "Decrease"
    type      = "ChangeCount"
    value     = "1"
    cooldown  = "PT5M"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;br&gt;
}&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffkxje0kin8oryvmdk0r3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffkxje0kin8oryvmdk0r3.png" alt="bam" width="800" height="622"&gt;&lt;/a&gt;&lt;br&gt;
touch outputs.tf              (paste the code below into it)&lt;br&gt;
output "public_ip" {&lt;br&gt;
  description = "The public IP address of the load balancer"&lt;br&gt;
  value       = azurerm_public_ip.vmss_pip.ip_address&lt;br&gt;
}&lt;br&gt;
&lt;strong&gt;touch .gitignore&lt;/strong&gt;                (paste the code below into the file)&lt;/p&gt;

&lt;h1&gt;
  
  
  Terraform
&lt;/h1&gt;

&lt;p&gt;.terraform/&lt;br&gt;
*.tfstate&lt;br&gt;
*.tfstate.backup&lt;br&gt;
*.tfvars&lt;br&gt;
crash.log&lt;br&gt;
override.tf&lt;br&gt;
override.tf.json&lt;br&gt;
.terraform.lock.hcl&lt;/p&gt;

&lt;h1&gt;
  
  
  OS generated files
&lt;/h1&gt;

&lt;p&gt;.DS_Store&lt;br&gt;
.DS_Store?&lt;br&gt;
._*&lt;br&gt;
.Spotlight-V100&lt;br&gt;
.Trashes&lt;br&gt;
ehthumbs.db&lt;br&gt;
Thumbs.db&lt;/p&gt;

&lt;h1&gt;
  
  
  IDE files
&lt;/h1&gt;

&lt;p&gt;.vscode/&lt;br&gt;
.idea/&lt;br&gt;
*.swp&lt;br&gt;
*.swo&lt;br&gt;
*~&lt;/p&gt;

&lt;h1&gt;
  
  
  Environment variables
&lt;/h1&gt;

&lt;p&gt;.env&lt;br&gt;
.env.local&lt;br&gt;
.env.*.local&lt;br&gt;
touch versions.tf               (paste the code below into it)&lt;br&gt;
terraform {&lt;br&gt;
required_version = "&amp;gt;= 1.4.0"&lt;/p&gt;

&lt;p&gt;required_providers {&lt;br&gt;
azurerm = {&lt;br&gt;
source  = "hashicorp/azurerm"&lt;/p&gt;

&lt;h1&gt;
  
  
  "~&amp;gt; 3.0" means any 3.x version — 3.0 through &amp;lt;4.0
&lt;/h1&gt;

&lt;p&gt;version = "~&amp;gt; 3.0"&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;random = {&lt;br&gt;
  source  = "hashicorp/random"&lt;br&gt;
  version = "~&amp;gt; 3.0"&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;}&lt;br&gt;
}&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxsgl0r9b9w20aulemqc0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxsgl0r9b9w20aulemqc0.png" alt="op" width="800" height="467"&gt;&lt;/a&gt;&lt;br&gt;
(NB; Remove the duplicate public IP and load balancer blocks from the network.tf (they’re now in frontend.tf).&lt;br&gt;
In compute.tf, change this reference line: &lt;br&gt;
load_balancer_backend_address_pool_ids = [azurerm_lb_backend_address_pool.bpepool.id]&lt;br&gt;
TO;&lt;br&gt;
load_balancer_backend_address_pool_ids = [azurerm_lb_backend_address_pool.frontend_bepool.id]&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fauh70xj6g6qkikkq0vsj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fauh70xj6g6qkikkq0vsj.png" alt="fad" width="800" height="373"&gt;&lt;/a&gt;&lt;br&gt;
🚀&lt;strong&gt;Initialize / Plan / Apply (local)&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  initialize providers by running
&lt;/h1&gt;

&lt;p&gt;terraform init -upgrade&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxi8cejc0xem1bd7ec8qq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxi8cejc0xem1bd7ec8qq.png" alt="gat" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  review plan by running
&lt;/h1&gt;

&lt;p&gt;terraform plan -out main.tfplan&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flnusgq0misvx7xyxcsoy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flnusgq0misvx7xyxcsoy.png" alt="kol" width="800" height="622"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  apply (use the plan you reviewed)
&lt;/h1&gt;

&lt;p&gt;terraform apply main.tfplan&lt;br&gt;
This returned an error, as seen in the screenshot&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffuw892dwtm9cosb0vdba.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffuw892dwtm9cosb0vdba.png" alt="tap" width="800" height="209"&gt;&lt;/a&gt;&lt;br&gt;
In your compute.tf file, update the image reference to use a valid Ubuntu 22.04 LTS image below;&lt;br&gt;
storage_profile_image_reference {&lt;br&gt;
  publisher = "Canonical"&lt;br&gt;
  offer     = "0001-com-ubuntu-server-focal"&lt;br&gt;
  sku       = "20_04-lts-gen2"&lt;br&gt;
  version   = "latest"&lt;br&gt;
}&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5798bovj8xyam87saf2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5798bovj8xyam87saf2.png" alt="wet" width="800" height="510"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1laoa7xxcxw92dhi0dal.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1laoa7xxcxw92dhi0dal.png" alt="fad" width="800" height="431"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Run terraform apply&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg93izerjr513bxsmivev.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg93izerjr513bxsmivev.png" alt="get" width="800" height="284"&gt;&lt;/a&gt;&lt;br&gt;
Copy and save your public IP&lt;br&gt;
(public_ip = "4.227.9.177")&lt;/p&gt;

&lt;p&gt;🚀&lt;strong&gt;Verify&lt;/strong&gt;&lt;br&gt;
Azure CLI: Run the code below;&lt;br&gt;
az vm list --resource-group  --output table &lt;br&gt;
Replace  with your resource group&lt;br&gt;
az vm list --resource-group terraform-state-rg --output table&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92si47asyblldc530bec.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92si47asyblldc530bec.png" alt="nop" width="800" height="30"&gt;&lt;/a&gt;&lt;br&gt;
The command returned no results, meaning no VMs exist in the terraform-state-rg resource group. This resource group likely only contains your Terraform state storage account.&lt;br&gt;
Now, run&lt;br&gt;
az vm list --resource-group terraform-vmss-rg --output table &lt;br&gt;
— You should see VM instances created by the VMSS.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8btch14885nsbhej234.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8btch14885nsbhej234.png" alt="gao" width="800" height="72"&gt;&lt;/a&gt;&lt;br&gt;
Correct - terraform-state-rg only contains your Terraform state storage account. Your actual VMs/VMSS are in a different resource group.&lt;/p&gt;

&lt;h1&gt;
  
  
  List all resource groups to find where your VMs are deployed
&lt;/h1&gt;

&lt;p&gt;az group list --output table&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc7dh8mc9smem7w85l4pa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc7dh8mc9smem7w85l4pa.png" alt="deck" width="800" height="107"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  List all Virtual Machine Scale Sets
&lt;/h1&gt;

&lt;p&gt;az vmss list --output table&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4pn4r19njfp3qwpqe80.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4pn4r19njfp3qwpqe80.png" alt="nam" width="800" height="136"&gt;&lt;/a&gt;&lt;br&gt;
Run &lt;strong&gt;az vmss list --resource-group terraform-vmss-rg --output table&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk1xgogk5lxiqcyypo5b6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk1xgogk5lxiqcyypo5b6.png" alt="kop" width="800" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Now let's check the actual instances running in your scale set:
&lt;/h1&gt;

&lt;p&gt;az vmss list-instances --resource-group terraform-vmss-rg --name tf-vmss --output table&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsh78ofk7dglfyx3880iw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsh78ofk7dglfyx3880iw.png" alt="deg" width="800" height="153"&gt;&lt;/a&gt;&lt;br&gt;
Check instance connection info:&lt;br&gt;
az vmss list-instance-connection-info --resource-group terraform-vmss-rg --name tf-vmss --output table&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frkpoqtooe2nm04hh3f3o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frkpoqtooe2nm04hh3f3o.png" alt="rat" width="800" height="66"&gt;&lt;/a&gt;&lt;br&gt;
The command returned no output, meaning no connection endpoints are configured.&lt;br&gt;
Check if instances exist in the scale set:&lt;br&gt;
az vmss list-instances --resource-group terraform-vmss-rg --name tf-vmss --output table&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F51wrk3g2vukcwejntk4o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F51wrk3g2vukcwejntk4o.png" alt="ted" width="800" height="253"&gt;&lt;/a&gt;&lt;br&gt;
Great. We have one instance (tf-vmss_0) running successfully.&lt;/p&gt;

&lt;h1&gt;
  
  
  Use the public_ip output or curl the domain from azurerm_public_ip to see the nginx page. (public_ip = "4.227.9.177")
&lt;/h1&gt;

&lt;p&gt;You can access the nginx page using the public IP address. Here are the ways to do it:&lt;br&gt;
&lt;a href="http://4.227.9.177" rel="noopener noreferrer"&gt;http://4.227.9.177&lt;/a&gt; on a browser or curl --connect-timeout 15 -m 30 -v &lt;a href="http://4.227.9.177" rel="noopener noreferrer"&gt;http://4.227.9.177&lt;/a&gt; on your terminal. &lt;br&gt;
&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Deploying an Azure Virtual Machine Scale Set using Terraform and pushing it to GitHub exemplifies modern DevOps excellence—combining infrastructure as code with version control for scalability, repeatability, and team synergy. With Terraform’s declarative power and GitHub’s collaborative backbone, you've laid the foundation for resilient cloud architecture and agile development workflows. This approach not only accelerates deployment but also ensures traceability, security, and continuous improvement across environments.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>tutorial</category>
      <category>devops</category>
      <category>terraform</category>
    </item>
    <item>
      <title>Procedures for Deploying .NET 9 App to Azure Kubernetes Service (AKS)</title>
      <dc:creator>Nelson Akpa</dc:creator>
      <pubDate>Mon, 15 Sep 2025 13:17:22 +0000</pubDate>
      <link>https://dev.to/nelson_akpa01/procedures-for-deploying-net-9-app-to-azure-kubernetes-service-aks-ge5</link>
      <guid>https://dev.to/nelson_akpa01/procedures-for-deploying-net-9-app-to-azure-kubernetes-service-aks-ge5</guid>
      <description>&lt;p&gt;🚀 &lt;strong&gt;Table of Contents&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Required software installations and verification. &lt;/li&gt;
&lt;li&gt;Create the .NET Application&lt;/li&gt;
&lt;li&gt;Containerize Your Application&lt;/li&gt;
&lt;li&gt;Set Up Azure Infrastructure&lt;/li&gt;
&lt;li&gt;Create Kubernetes Configuration&lt;/li&gt;
&lt;li&gt;Set Up GitHub Actions CI/CD&lt;/li&gt;
&lt;li&gt;Access Your Deployed Application&lt;/li&gt;
&lt;li&gt;Test Continuous Deployment&lt;/li&gt;
&lt;li&gt;Clean Up Resources (Optional)&lt;/li&gt;
&lt;li&gt;Conclusion.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;🚀 1. &lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
Deploying a .NET 9 application to Azure Kubernetes Service (AKS) unlocks the full potential of cloud-native architecture with cutting-edge performance and scalability. This article outlines a streamlined deployment workflow—from containerizing your .NET 9 codebase to orchestrating it within AKS clusters. Whether you're modernizing legacy systems or launching new microservices, you'll gain practical insights to build, ship, and scale with confidence in the Azure ecosystem. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0avgg93d0lj2xqk4g1d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs0avgg93d0lj2xqk4g1d.png" alt="process" width="800" height="1200"&gt;&lt;/a&gt;&lt;br&gt;
🚀 2. Required software installations and verification&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visual Studio Code - Download here&lt;/li&gt;
&lt;li&gt;NET 8 SDK - Download here&lt;/li&gt;
&lt;li&gt;Git - Download here&lt;/li&gt;
&lt;li&gt;Docker Desktop - Download here&lt;/li&gt;
&lt;li&gt;Important: Start Docker Desktop after installation&lt;/li&gt;
&lt;li&gt;Azure CLI - Download here&lt;/li&gt;
&lt;li&gt;kubectl - Download here&lt;/li&gt;
&lt;li&gt;GitHub CLI (Optional) - Download here
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6n64qav2sp2e7yyu8xzc.png" alt="vrd" width="800" height="512"&gt;
🚀 3.0 &lt;strong&gt;CREATE THE .NET APPLICATION&lt;/strong&gt;
&lt;strong&gt;3.1 Set Up Project Structure&lt;/strong&gt;
First, open your VSCode and set your files to "autosave. " Then, navigate to the file on your laptop and create a new folder named "DotNetApp."
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkvcbwh7m0qpsub7jmkf3.png" alt="bok" width="800" height="642"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flua74wvbqzkp64d9zfoe.png" alt="nopl" width="800" height="597"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F90ybi0dw129d22qbwvdg.png" alt="bok" width="800" height="466"&gt;
Create the new Folder DotNetApp or choose any name of your choice
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2d0lpcw5kcsloggykfk0.png" alt="bab" width="800" height="463"&gt;
Open the new Folder
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwfgxytfwuwhx0bb4hskg.png" alt="bop" width="800" height="459"&gt;
Open the terminal, click on the top screen's view section, and then select terminal.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F01pe1015v2tjfv9866g5.png" alt="hop" width="800" height="457"&gt;
Run the following code in VSCode as shown in the screenshots: mkdir weather-app-demo
cd weather-app-demo
mkdir WeatherApp
cd WeatherApp
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3bblh1lnha7o8e8ddyvw.png" alt="deop" width="800" height="403"&gt;
&lt;strong&gt;3.2 Initialize .NET Project&lt;/strong&gt;
Run dotnet new webapi -minimal 
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2czghrfsfi3vwo5h8x9w.png" alt="bapo" width="800" height="538"&gt;
&lt;strong&gt;3.3. Add Required Dependencies&lt;/strong&gt;
Run the following separately: a. dotnet add package Microsoft.Extensions.Diagnostics.HealthChecks
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofx51xb2wudjqtivr53v.png" alt="pokl" width="800" height="348"&gt;
b. dotnet add package Swashbuckle.AspNetCore
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fko0v8gq4v5xy2fqyjg05.png" alt="gvae" width="800" height="381"&gt;
&lt;strong&gt;3.4. Create the Application Code&lt;/strong&gt;
Replace the contents of Program.cs with the code below;
using Swashbuckle.AspNetCore.SwaggerUI;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;var builder = WebApplication.CreateBuilder(args);&lt;/p&gt;

&lt;p&gt;// Add services to the container&lt;br&gt;
builder.Services.AddHealthChecks();&lt;br&gt;
builder.Services.AddEndpointsApiExplorer();&lt;br&gt;
builder.Services.AddSwaggerGen();&lt;/p&gt;

&lt;p&gt;// Configure Kestrel to listen on port 8080 (required for containers)&lt;br&gt;
builder.WebHost.ConfigureKestrel(options =&amp;gt;&lt;br&gt;
{&lt;br&gt;
    options.ListenAnyIP(8080);&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;var app = builder.Build();&lt;/p&gt;

&lt;p&gt;// Configure the HTTP request pipeline&lt;br&gt;
if (app.Environment.IsDevelopment() || app.Environment.IsProduction())&lt;br&gt;
{&lt;br&gt;
    app.UseSwagger();&lt;br&gt;
    app.UseSwaggerUI(c =&amp;gt;&lt;br&gt;
    {&lt;br&gt;
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "Weather API v1");&lt;br&gt;
        c.RoutePrefix = "swagger";&lt;br&gt;
    });&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;// Define API endpoints&lt;br&gt;
app.MapGet("/", () =&amp;gt; new&lt;br&gt;
{&lt;br&gt;
    Message = "Welcome to the Weather App!",&lt;br&gt;
    Version = "1.0.0",&lt;br&gt;
    Environment = app.Environment.EnvironmentName,&lt;br&gt;
    Timestamp = DateTime.UtcNow&lt;br&gt;
})&lt;br&gt;
.WithName("GetWelcome")&lt;br&gt;
.WithTags("General");&lt;/p&gt;

&lt;p&gt;app.MapGet("/weather", () =&amp;gt;&lt;br&gt;
{&lt;br&gt;
    var summaries = new[]&lt;br&gt;
    {&lt;br&gt;
        "Freezing", "Bracing", "Chilly", "Cool", "Mild",&lt;br&gt;
        "Warm", "Balmy", "Hot", "Sweltering", "Scorching"&lt;br&gt;
    };&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var forecast = Enumerable.Range(1, 5).Select(index =&amp;gt; new
{
    Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
    TemperatureC = Random.Shared.Next(-20, 55),
    Summary = summaries[Random.Shared.Next(summaries.Length)]
})
.Select(temp =&amp;gt; new
{
    temp.Date,
    temp.TemperatureC,
    TemperatureF = 32 + (int)(temp.TemperatureC / 0.5556),
    temp.Summary
});

return forecast;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;})&lt;br&gt;
.WithName("GetWeatherForecast")&lt;br&gt;
.WithTags("Weather");&lt;/p&gt;

&lt;p&gt;// Health check endpoint (required for Kubernetes)&lt;br&gt;
app.MapHealthChecks("/health")&lt;br&gt;
.WithTags("Health");&lt;/p&gt;

&lt;p&gt;app.Run();&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxgjamj704kkmr56wzleg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxgjamj704kkmr56wzleg.png" alt="dap" width="800" height="578"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;3.5. Test Locally&lt;/strong&gt;&lt;br&gt;
Run dotnet run&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsy61mih648g5iu3lcbcj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsy61mih648g5iu3lcbcj.png" alt="kolu" width="800" height="287"&gt;&lt;/a&gt;&lt;br&gt;
Open your browser and test these endpoints:&lt;br&gt;
&lt;a href="http://localhost:8080/" rel="noopener noreferrer"&gt;http://localhost:8080/&lt;/a&gt; - Welcome message&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F97p06x14l21pukr4ma1f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F97p06x14l21pukr4ma1f.png" alt="pol" width="800" height="95"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="http://localhost:8080/weather" rel="noopener noreferrer"&gt;http://localhost:8080/weather&lt;/a&gt; - Weather forecast&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmevsdl7vu5v7efm7hmw3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmevsdl7vu5v7efm7hmw3.png" alt="dam" width="800" height="136"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="http://localhost:8080/swagger" rel="noopener noreferrer"&gt;http://localhost:8080/swagger&lt;/a&gt; - API documentation&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl4m2r413kroq9fp6ccfi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl4m2r413kroq9fp6ccfi.png" alt="bim" width="800" height="445"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="http://localhost:8080/health" rel="noopener noreferrer"&gt;http://localhost:8080/health&lt;/a&gt; - Health check&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnt8z96m0iwqfxommnwn1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnt8z96m0iwqfxommnwn1.png" alt="ban" width="800" height="205"&gt;&lt;/a&gt;&lt;br&gt;
Press Ctrl+C to stop the application.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxk1ari2wuycthdsosqj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxk1ari2wuycthdsosqj.png" alt="deb" width="800" height="288"&gt;&lt;/a&gt;&lt;br&gt;
🚀 &lt;strong&gt;4. CONTAINERIZE YOUR APPLICATION&lt;/strong&gt;&lt;br&gt;
4.1. Create a Dockerfile file (no extension) in the Weatherapp folder. Paste the code below into the file;&lt;/p&gt;

&lt;h1&gt;
  
  
  Multi-stage build for optimized image size
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Build stage
&lt;/h1&gt;

&lt;p&gt;FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build&lt;br&gt;
ARG BUILD_CONFIGURATION=Release&lt;br&gt;
WORKDIR /src&lt;/p&gt;

&lt;h1&gt;
  
  
  ✅ Copy csproj from current dir (Dockerfile context = Weatherapp/)
&lt;/h1&gt;

&lt;p&gt;COPY ["Weatherapp.csproj", "./"]&lt;br&gt;
RUN dotnet restore "Weatherapp.csproj"&lt;/p&gt;

&lt;h1&gt;
  
  
  Copy source code and build
&lt;/h1&gt;

&lt;p&gt;COPY . .&lt;br&gt;
RUN dotnet build "Weatherapp.csproj" -c $BUILD_CONFIGURATION -o /app/build&lt;/p&gt;

&lt;h1&gt;
  
  
  Publish stage
&lt;/h1&gt;

&lt;p&gt;FROM build AS publish&lt;br&gt;
ARG BUILD_CONFIGURATION=Release&lt;br&gt;
RUN dotnet publish "Weatherapp.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false&lt;/p&gt;

&lt;h1&gt;
  
  
  Runtime stage
&lt;/h1&gt;

&lt;p&gt;FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base&lt;br&gt;
WORKDIR /app&lt;br&gt;
EXPOSE 8080&lt;br&gt;
ENV ASPNETCORE_URLS=http://+:8080&lt;br&gt;
ENV ASPNETCORE_ENVIRONMENT=Production&lt;/p&gt;

&lt;h1&gt;
  
  
  Install curl
&lt;/h1&gt;

&lt;p&gt;RUN apt-get update &amp;amp;&amp;amp; apt-get install -y curl &amp;amp;&amp;amp; rm -rf /var/lib/apt/lists/*&lt;/p&gt;

&lt;h1&gt;
  
  
  Final stage
&lt;/h1&gt;

&lt;p&gt;FROM base AS final&lt;br&gt;
WORKDIR /app&lt;br&gt;
COPY --from=publish /app/publish .&lt;br&gt;
ENTRYPOINT ["dotnet", "WeatherApp.dll"]&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fijc1d4hgr8mfom1qgmji.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fijc1d4hgr8mfom1qgmji.png" alt="bok" width="800" height="416"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;4.2 Create .dockerignore&lt;/strong&gt;&lt;br&gt;
Create a .dockerignore file to exclude unnecessary files. Paste the file below into the Dockerignore file.&lt;/p&gt;

&lt;h1&gt;
  
  
  Build outputs
&lt;/h1&gt;

&lt;p&gt;bin/&lt;br&gt;
obj/&lt;br&gt;
out/&lt;/p&gt;

&lt;h1&gt;
  
  
  IDE files
&lt;/h1&gt;

&lt;p&gt;.vs/&lt;br&gt;
.vscode/&lt;br&gt;
*.user&lt;br&gt;
*.suo&lt;/p&gt;

&lt;h1&gt;
  
  
  OS files
&lt;/h1&gt;

&lt;p&gt;.DS_Store&lt;br&gt;
Thumbs.db&lt;/p&gt;

&lt;h1&gt;
  
  
  Git
&lt;/h1&gt;

&lt;p&gt;.git/&lt;br&gt;
.gitignore&lt;/p&gt;

&lt;h1&gt;
  
  
  Documentation
&lt;/h1&gt;

&lt;p&gt;README.md&lt;br&gt;
*.md&lt;/p&gt;

&lt;h1&gt;
  
  
  Docker files
&lt;/h1&gt;

&lt;p&gt;Dockerfile&lt;br&gt;
Dockerfile.*&lt;br&gt;
.dockerignore&lt;/p&gt;

&lt;h1&gt;
  
  
  Logs
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;.log&lt;br&gt;
logs/&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4k8jcdcqfxi4ylnky5o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4k8jcdcqfxi4ylnky5o.png" alt="bad" width="800" height="599"&gt;&lt;/a&gt;&lt;br&gt;
**4.3 Build and Test Container&lt;/em&gt;*&lt;br&gt;
Run the following code;  &lt;/p&gt;

&lt;h1&gt;
  
  
  Build the Docker image
&lt;/h1&gt;

&lt;p&gt;docker build -t weather-app: local . &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flhsbik427ssu5odoniqm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flhsbik427ssu5odoniqm.png" alt="bop" width="800" height="656"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Run the container
&lt;/h1&gt;

&lt;p&gt;docker run -d -p 8080:8080 --name weather-test weather-app:local&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fogr0z5myw2r8asdg7181.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fogr0z5myw2r8asdg7181.png" alt="bol" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Test the containerized app
&lt;/h1&gt;

&lt;p&gt;curl &lt;a href="http://localhost:8080/" rel="noopener noreferrer"&gt;http://localhost:8080/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsrzwopwdxbaazaaoa05a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsrzwopwdxbaazaaoa05a.png" alt="cop" width="800" height="111"&gt;&lt;/a&gt;&lt;br&gt;
curl &lt;a href="http://localhost:8080/weather" rel="noopener noreferrer"&gt;http://localhost:8080/weather&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgdzijuux9xai0758ji7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgdzijuux9xai0758ji7.png" alt="top" width="800" height="101"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;# Clean up&lt;/strong&gt;&lt;br&gt;
Run docker stop weather-test&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g3ayhx8vwnowcn1kwns.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g3ayhx8vwnowcn1kwns.png" alt="kop" width="800" height="104"&gt;&lt;/a&gt;&lt;br&gt;
docker rm weather-test&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhrpxdaw0tp96k0sz9he.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhrpxdaw0tp96k0sz9he.png" alt="gok" width="800" height="197"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;5. SET UP AZURE INFRASTRUCTURE&lt;/strong&gt;&lt;br&gt;
Run az login &lt;br&gt;
This connects to your Azure account and opens up a list of subscriptions.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq1ny2z5ehcct69ows3jv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq1ny2z5ehcct69ows3jv.png" alt="VED" width="800" height="431"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;5.2 Select your subscription&lt;/strong&gt;&lt;br&gt;
Choose your subscription from the list of others, or simply run the following; &lt;/p&gt;

&lt;h1&gt;
  
  
  List available subscriptions
&lt;/h1&gt;

&lt;p&gt;az account list --output table&lt;/p&gt;

&lt;h1&gt;
  
  
  Set the subscription you want to use
&lt;/h1&gt;

&lt;p&gt;az account set --subscription "Your-Subscription-Name"&lt;br&gt;
&lt;strong&gt;5.3. Create a resource group&lt;/strong&gt;&lt;br&gt;
Run the following code;&lt;br&gt;
az group create --name student-demo --location eastus&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzumt69cp8u0q9oyfv5cp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzumt69cp8u0q9oyfv5cp.png" alt="sed" width="800" height="294"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;5.4. Create a Container Registry&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Replace 'studentdemo2024acr' with a unique name (add your initials/year)
&lt;/h1&gt;

&lt;p&gt;az acr create \&lt;br&gt;
  --resource-group student-demo \&lt;br&gt;
  --name studentdemo2074acr \&lt;br&gt;
  --sku Basic&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxxqe5xpiqtjxy207fe0q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxxqe5xpiqtjxy207fe0q.png" alt=" " width="800" height="487"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;5.5. Build and Push Image Using ACR&lt;/strong&gt;&lt;br&gt;
From the folder that contains your Dockerfile, run:&lt;br&gt;
az acr build \&lt;br&gt;
  --registry studentdemo2074acr \&lt;br&gt;
  --image weather-app:latest \&lt;br&gt;
  .&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Funp54kpqov1pksfzcxdz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Funp54kpqov1pksfzcxdz.png" alt="lop" width="800" height="351"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9mymrc35x3k7rmmkuadm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9mymrc35x3k7rmmkuadm.png" alt="kol" width="800" height="411"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;5.6 Create AKS Cluster with ACR integration.&lt;/strong&gt;&lt;br&gt;
Run this code &lt;br&gt;
az aks create \&lt;br&gt;
  --resource-group student-demo \&lt;br&gt;
  --name student-aks-cluster \&lt;br&gt;
  --node-count 1 \&lt;br&gt;
  --node-vm-size Standard_B2s \&lt;br&gt;
  --attach-acr studentdemo2074acr \&lt;br&gt;
  --enable-managed-identity \&lt;br&gt;
  --generate-ssh-keys&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz3ljg0ojv2f12ode7490.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz3ljg0ojv2f12ode7490.png" alt="nom" width="800" height="405"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;5.7. Connect To Your Cluster&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Download cluster credentials
&lt;/h1&gt;

&lt;p&gt;az aks get-credentials \&lt;br&gt;
  --resource-group student-demo \&lt;br&gt;
  --name student-aks-cluster&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fochacfkktmt3wpauhta8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fochacfkktmt3wpauhta8.png" alt="okl" width="800" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;# Verify connection&lt;/strong&gt;&lt;br&gt;
kubectl get nodes&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftgrazktnga19cbd58yq9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftgrazktnga19cbd58yq9.png" alt="gad" width="800" height="79"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;5.8. Verify ACR Integration (Optional)&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Get the managed identity client ID
&lt;/h1&gt;

&lt;p&gt;Run the code; &lt;br&gt;
CLIENT_ID=$(az aks show \&lt;br&gt;
  --resource-group student-demo \&lt;br&gt;
  --name student-aks-cluster \&lt;br&gt;
  --query "identityProfile.kubeletidentity.clientId" \&lt;br&gt;
  --output tsv)&lt;/p&gt;

&lt;p&gt;echo "Kubelet Client ID: $CLIENT_ID" &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1f0trpa5aplcywo9cwbj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1f0trpa5aplcywo9cwbj.png" alt="huo" width="800" height="160"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;# Verify the role assignment exists&lt;/strong&gt;&lt;br&gt;
az role assignment list \&lt;br&gt;
  --assignee $CLIENT_ID \&lt;br&gt;
  --scope $(az acr show --name studentdemo2074acr --query id --output tsv) \&lt;br&gt;
  --output table&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffbo545vz58pxenrwum7g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffbo545vz58pxenrwum7g.png" alt="poj" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You should see an AcrPull role assignment. If not, create it manually:&lt;/p&gt;

&lt;h1&gt;
  
  
  Only if the role assignment doesn't exist
&lt;/h1&gt;

&lt;p&gt;Run;&lt;br&gt;
az role assignment create \&lt;br&gt;
  --assignee $CLIENT_ID \&lt;br&gt;
  --role AcrPull \&lt;br&gt;
  --scope $(az acr show --name studentdemo2074acr --query id --output tsv)&lt;br&gt;
&lt;strong&gt;6. CREATE KUBERNETES CONFIGURATION&lt;/strong&gt;&lt;br&gt;
6.1. &lt;strong&gt;Set Up Kubernetes Manifests Directory&lt;/strong&gt;&lt;br&gt;
Run the following code; &lt;br&gt;
cd ..  (# Back to weather-app-demo folder) &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-%2520uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk04uxyz1y6u5iqcb7b1n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-%2520uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk04uxyz1y6u5iqcb7b1n.png" alt="kop" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
mkdir k8s&lt;br&gt;
cd k8s&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8psxjpm84we8aupjtv3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs8psxjpm84we8aupjtv3.png" alt="kol" width="800" height="107"&gt;&lt;/a&gt;&lt;br&gt;
6.2. &lt;strong&gt;Create Deployment Configuration&lt;/strong&gt;&lt;br&gt;
Create deployment.yaml &lt;br&gt;
paste the code below into the file;&lt;br&gt;
apiVersion: apps/v1&lt;br&gt;
kind: Deployment&lt;br&gt;
metadata:&lt;br&gt;
  name: weather-app&lt;br&gt;
  namespace: default&lt;br&gt;
  labels:&lt;br&gt;
    app: weather-app&lt;br&gt;
    version: v1&lt;br&gt;
spec:&lt;br&gt;
  replicas: 1&lt;br&gt;
  selector:&lt;br&gt;
    matchLabels:&lt;br&gt;
      app: weather-app&lt;br&gt;
  template:&lt;br&gt;
    metadata:&lt;br&gt;
      labels:&lt;br&gt;
        app: weather-app&lt;br&gt;
        version: v1&lt;br&gt;
    spec:&lt;br&gt;
      imagePullSecrets:&lt;br&gt;
        - name: acr-pull-secret&lt;br&gt;
      containers:&lt;br&gt;
        - name: weather-app&lt;br&gt;
          image: studentdemo2074acr.azurecr.io/weather-app:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;      imagePullPolicy: Always
      ports:
        - name: http
          containerPort: 8080
          protocol: TCP
      env:
        - name: ASPNETCORE_ENVIRONMENT
          value: "Production"
      resources:
        requests:
          memory: "128Mi"
          cpu: "100m"
        limits:
          memory: "512Mi"
          cpu: "500m"
      livenessProbe:
        httpGet:
          path: /health
          port: http
        initialDelaySeconds: 30
        periodSeconds: 10
        timeoutSeconds: 5
        failureThreshold: 3
      readinessProbe:
        httpGet:
          path: /health
          port: http
        initialDelaySeconds: 10
        periodSeconds: 5
        timeoutSeconds: 3
        failureThreshold: 3
      startupProbe:
        httpGet:
          path: /health
          port: http
        initialDelaySeconds: 15
        periodSeconds: 5
        timeoutSeconds: 3
        failureThreshold: 30
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx464q5wnch3u7zelg91j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx464q5wnch3u7zelg91j.png" alt="pok" width="800" height="494"&gt;&lt;/a&gt;&lt;br&gt;
Note: There's no need for imagePullSecrets because AKS with --attach-acr handles authentication automatically!&lt;br&gt;
6.3. &lt;strong&gt;Create Service Configuration&lt;/strong&gt;&lt;br&gt;
Create service.yaml and paste the code below into the file.&lt;br&gt;
apiVersion: v1&lt;br&gt;
kind: Service&lt;br&gt;
metadata:&lt;br&gt;
  name: weather-app-service&lt;br&gt;
  labels:&lt;br&gt;
    app: weather-app&lt;br&gt;
spec:&lt;br&gt;
  type: LoadBalancer&lt;br&gt;
  selector:&lt;br&gt;
    app: weather-app&lt;br&gt;
  ports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;name: http
port: 80
targetPort: 8080
protocol: TCP
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4hxovu50k0bw3knxrbum.png" alt="top" width="800" height="632"&gt;
6.4 &lt;strong&gt;Deploy to Kubernetes&lt;/strong&gt; 
Run the codes individually. 
# Apply Kubernetes manifests
kubectl apply -f deployment.yaml
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa1x0vrceg7wfj774isb0.png" alt="dam" width="800" height="137"&gt;
kubectl apply -f service.yml
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdfay3ldcxm9qgda0qw56.png" alt="bap" width="800" height="79"&gt;
# Check deployment status
kubectl get deployments
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8iq5u7ppdrpcptr47ty5.png" alt="dat" width="800" height="72"&gt;
kubectl get pods
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyrwvetvxa76qy7ws3mzc.png" alt="hop" width="800" height="109"&gt;
kubectl get services
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvk52n8imn873hyktitb6.png" alt="get" width="800" height="102"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Watch pods until they're running
&lt;/h1&gt;

&lt;p&gt;kubectl get pods --watch&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi309aiq8x91055b1076o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi309aiq8x91055b1076o.png" alt="good" width="800" height="68"&gt;&lt;/a&gt;&lt;br&gt;
6.5. &lt;strong&gt;Troubleshoot if Needed&lt;/strong&gt;&lt;br&gt;
If you see ImagePullBackOff:&lt;/p&gt;

&lt;h1&gt;
  
  
  Check pod events
&lt;/h1&gt;

&lt;p&gt;kubectl describe pod $(kubectl get pods -l app=weather-app -o jsonpath='{.items[0].metadata.name}')&lt;/p&gt;

&lt;h1&gt;
  
  
  Check if the image exists in ACR
&lt;/h1&gt;

&lt;p&gt;az acr repository show-tags --name studentdemo2024acr --repository weather-app --output table&lt;/p&gt;

&lt;h1&gt;
  
  
  Force a new pull
&lt;/h1&gt;

&lt;p&gt;kubectl rollout restart deployment/weather-app&lt;br&gt;
7.0. &lt;strong&gt;SET UP GITHUB ACTIONS CI/CD&lt;/strong&gt;&lt;br&gt;
7.1. &lt;strong&gt;Initialize Git Repository&lt;/strong&gt;&lt;br&gt;
Run the following codes&lt;br&gt;
cd ..  (# Back to weather-app-demo folder)&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncjv171o7ste427anz8j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncjv171o7ste427anz8j.png" alt="best" width="800" height="85"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Initialize Git repository
&lt;/h1&gt;

&lt;p&gt;git init&lt;br&gt;
git add .&lt;br&gt;
git commit -m "Initial commit: Weather App with Docker and Kubernetes"&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd7hjy3lyh8twqultntr9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd7hjy3lyh8twqultntr9.png" alt="great" width="800" height="354"&gt;&lt;/a&gt;&lt;br&gt;
7.2. &lt;strong&gt;Create Azure Service Principal&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Get your subscription ID
&lt;/h1&gt;

&lt;p&gt;SUBSCRIPTION_ID=$(az account show --query id --output tsv)&lt;br&gt;
echo "Subscription ID: $SUBSCRIPTION_ID"&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyihw5llld5xul7z89qg5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyihw5llld5xul7z89qg5.png" alt="dec" width="800" height="115"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Create service principal with contributor role
&lt;/h1&gt;

&lt;p&gt;az ad sp create-for-rbac \&lt;br&gt;
  --name "weather-app-github-sp" \&lt;br&gt;
  --role contributor \&lt;br&gt;
  --scopes /subscriptions/$SUBSCRIPTION_ID/resourceGroups/student-demo \&lt;br&gt;
  --sdk-auth&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl4o4p0ht96zmxumifkwh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl4o4p0ht96zmxumifkwh.png" alt="gaj" width="800" height="404"&gt;&lt;/a&gt;&lt;br&gt;
Important: Copy the entire JSON output in the red box - you'll need it for GitHub secrets!&lt;br&gt;
7.3. &lt;strong&gt;Create GitHub Repository&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Create GitHub repository (using GitHub CLI)
&lt;/h1&gt;

&lt;p&gt;gh auth login  # Follow the prompts&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6071dhkwu5zgwszjpwrv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6071dhkwu5zgwszjpwrv.png" alt="GEM" width="800" height="118"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1l64r8mleain8yu2gmb5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1l64r8mleain8yu2gmb5.png" alt="GOP" width="800" height="221"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fair49l8ldrfrox5as1ze.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fair49l8ldrfrox5as1ze.png" alt="BAD" width="800" height="731"&gt;&lt;/a&gt;&lt;br&gt;
gh repo create weather-app-demo --public --source=. --push&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2y0zhmj3th3hfklgdrt5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2y0zhmj3th3hfklgdrt5.png" alt="AMP" width="800" height="264"&gt;&lt;/a&gt;&lt;br&gt;
Alternative: Create the repository manually on GitHub.com and push your code.&lt;br&gt;
7.4. &lt;strong&gt;Configure GitHub Secrets&lt;/strong&gt;&lt;br&gt;
Navigate to your GitHub repository:&lt;/p&gt;

&lt;p&gt;Go to Settings → Secrets and variables → Actions&lt;br&gt;
Click New repository secret and add these secrets:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jm6yfuloe5tll40ejqg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jm6yfuloe5tll40ejqg.png" alt="NOK" width="800" height="359"&gt;&lt;/a&gt;&lt;br&gt;
Navigate to secrets and variables &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqft1222ex0r6ftvfkv3l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqft1222ex0r6ftvfkv3l.png" alt="gpo" width="800" height="427"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhjz7e6w6xlhlm0y7dyl9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhjz7e6w6xlhlm0y7dyl9.png" alt="pok" width="800" height="198"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg80ivh36tzymtsa8qp2s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg80ivh36tzymtsa8qp2s.png" alt="ball" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Secret Name&lt;br&gt;
Value&lt;br&gt;
AZURE_CREDENTIALS&lt;br&gt;
The JSON output from step 5.2&lt;br&gt;
ACR_NAME&lt;br&gt;
studentdemo2074acr (your ACR name)&lt;br&gt;
RESOURCE_GROUP&lt;br&gt;
student-demo&lt;br&gt;
CLUSTER_NAME&lt;br&gt;
student-aks-cluster&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsd9efe5sqja6dv5hg1d8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsd9efe5sqja6dv5hg1d8.png" alt="nop" width="800" height="275"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr3il4ro2mrg5n3dsokbw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr3il4ro2mrg5n3dsokbw.png" alt="okop" width="800" height="294"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyqc2dfmpoilfmguwpx4e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyqc2dfmpoilfmguwpx4e.png" alt="bot" width="800" height="335"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqo1twqpt3iohz9pb078m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqo1twqpt3iohz9pb078m.png" alt="total" width="800" height="303"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;7.5. Create GitHub Workflow&lt;/strong&gt;&lt;br&gt;
Create the workflow directory and file by running the code below;&lt;br&gt;
mkdir -p .github/workflows&lt;br&gt;
touch .github/workflows/deploy.yml&lt;br&gt;
name: Build and Deploy to AKS&lt;/p&gt;

&lt;p&gt;on:&lt;br&gt;
  push:&lt;br&gt;
    branches: [main]&lt;br&gt;
  workflow_run:&lt;br&gt;
    workflows: ["CI - Build and Test"]&lt;br&gt;
    types: [completed]&lt;br&gt;
    branches: [main]&lt;/p&gt;

&lt;p&gt;jobs:&lt;br&gt;
  build-and-deploy:&lt;br&gt;
    runs-on: ubuntu-latest&lt;br&gt;
    if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'push' }}&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;steps:
  - name: Checkout code
    uses: actions/checkout@v4

  - name: Setup .NET 9.0
    uses: actions/setup-dotnet@v4
    with:
      dotnet-version: '9.0.x'

  - name: Restore dependencies
    run: dotnet restore WeatherApp/WeatherApp.csproj

  - name: Build application
    run: dotnet build WeatherApp/WeatherApp.csproj --configuration Release --no-restore

  - name: Run tests
    run: dotnet test WeatherApp/WeatherApp.csproj --no-build --verbosity normal

  - name: Azure Login
    uses: azure/login@v1
    with:
      creds: ${{ secrets.AZURE_CREDENTIALS }}

  - name: Login to Azure Container Registry
    run: |
      az acr login --name ${{ secrets.ACR_NAME }}

  - name: Set IMAGE_NAME environment variable
    run: echo "IMAGE_NAME=weather-app" &amp;gt;&amp;gt; $GITHUB_ENV

  - name: Set NAMESPACE environment variable
    run: echo "NAMESPACE=default" &amp;gt;&amp;gt; $GITHUB_ENV

  - name: Build and push Docker image to ACR
    run: |
      IMAGE_TAG=${{ secrets.ACR_NAME }}.azurecr.io/$IMAGE_NAME:${{ github.sha }}
      docker build -t $IMAGE_TAG WeatherApp/
      docker push $IMAGE_TAG
      echo "IMAGE_TAG=$IMAGE_TAG" &amp;gt;&amp;gt; $GITHUB_ENV

  - name: Test Docker image
    run: |
      docker run -d -p 8080:8080 -e ASPNETCORE_URLS=http://+:8080 --name test-container $IMAGE_TAG
      sleep 10
      docker logs test-container
      curl -f http://localhost:8080/health || exit 1
      docker stop test-container
      docker rm test-container

  - name: Deploy to AKS
    if: github.ref == 'refs/heads/main'
    run: |
      # Get AKS credentials
      az aks get-credentials \
        --resource-group ${{ secrets.RESOURCE_GROUP }} \
        --name ${{ secrets.CLUSTER_NAME }} \
        --overwrite-existing

      # Check if deployment exists, if not create it
      if ! kubectl get deployment/weather-app -n default &amp;gt; /dev/null 2&amp;gt;&amp;amp;1; then
        echo "Creating new deployment..."
        if [ -d "k8s/" ]; then
          kubectl apply -f k8s/ -n default
        else
          echo "No k8s/ directory found. Please create Kubernetes manifests."
          exit 1
        fi
      else
        echo "Updating existing deployment..."
        kubectl set image deployment/weather-app \
          weather-app=$IMAGE_TAG \
          -n default \
          --record
      fi

      # Wait for deployment to complete
      kubectl rollout status deployment/weather-app -n default --timeout=300s

      # Get service info
      kubectl get service weather-app-service -n default || echo "Service not found"

      # Verify pods
      kubectl get pods -n default -l app=weather-app

      # Simple smoke test
      kubectl port-forward service/weather-app-service 8080:80 -n default &amp;amp;
      sleep 5
      curl -f http://localhost:8080/health || echo "Health check failed"
      pkill -f "kubectl port-forward"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fynbn4d7iojza2igp03zf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fynbn4d7iojza2igp03zf.png" alt="gate" width="800" height="88"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;7.6. 5.6 Deploy Your Application&lt;/strong&gt;&lt;br&gt;
git add .&lt;br&gt;
git commit -m "Add GitHub Actions CI/CD pipeline"&lt;br&gt;
git push origin main&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5ad3hcsdhmlic0yxl22.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5ad3hcsdhmlic0yxl22.png" alt="baok" width="800" height="198"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Monitor the deployment:&lt;br&gt;
Go to your GitHub repository&lt;br&gt;
Click the Actions tab&lt;br&gt;
Watch your workflow run in real-time&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foku6bd0hlarrm2rf24fr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foku6bd0hlarrm2rf24fr.png" alt="fig" width="800" height="299"&gt;&lt;/a&gt;&lt;br&gt;
**8.0 Access Your Deployed Application&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;8.1 Access Your Deployed Application&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Get External IP Address&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Check service status
&lt;/h1&gt;

&lt;p&gt;Run kubectl get service weather-app-service&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fps5kvno92amu21mnsrqj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fps5kvno92amu21mnsrqj.png" alt="bok" width="800" height="56"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Wait for EXTERNAL-IP (may take 2-5 minutes)
&lt;/h1&gt;

&lt;p&gt;Run kubectl get service weather-app-service --watch&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ifsnr8wcbqagqvftjgo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ifsnr8wcbqagqvftjgo.png" alt="nab" width="800" height="58"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;8.2. Test Your Live Application&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Test the endpoints
&lt;/h1&gt;

&lt;p&gt;curl &lt;a href="http://YOUR-EXTERNAL-IP/" rel="noopener noreferrer"&gt;http://YOUR-EXTERNAL-IP/&lt;/a&gt;&lt;br&gt;
&lt;a href="http://4.157.170.214" rel="noopener noreferrer"&gt;http://4.157.170.214&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2vwuiy66nq68r1o9yz1j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2vwuiy66nq68r1o9yz1j.png" alt="hod" width="800" height="112"&gt;&lt;/a&gt;&lt;br&gt;
curl &lt;a href="http://YOUR-EXTERNAL-IP/weather" rel="noopener noreferrer"&gt;http://YOUR-EXTERNAL-IP/weather&lt;/a&gt;&lt;br&gt;
&lt;a href="http://4.157.170.214/weather" rel="noopener noreferrer"&gt;http://4.157.170.214/weather&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8c7hy2fu6z3qo5t740a5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8c7hy2fu6z3qo5t740a5.png" alt="bpl" width="800" height="112"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;curl &lt;a href="http://YOUR-EXTERNAL-IP/health" rel="noopener noreferrer"&gt;http://YOUR-EXTERNAL-IP/health&lt;/a&gt;&lt;br&gt;
&lt;a href="http://4.157.170.214/health" rel="noopener noreferrer"&gt;http://4.157.170.214/health&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe64wohqyk95h15zbkxl4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe64wohqyk95h15zbkxl4.png" alt="gap" width="800" height="195"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Or open in browser
&lt;/h1&gt;

&lt;p&gt;open &lt;a href="http://YOUR-EXTERNAL-IP/swagger" rel="noopener noreferrer"&gt;http://YOUR-EXTERNAL-IP/swagger&lt;/a&gt;  # macOS&lt;br&gt;
&lt;a href="http://4.157.170.214/swagger" rel="noopener noreferrer"&gt;http://4.157.170.214/swagger&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdyc3rf975wzwkr5w24ek.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdyc3rf975wzwkr5w24ek.png" alt="bap" width="800" height="428"&gt;&lt;/a&gt;&lt;br&gt;
start &lt;a href="http://YOUR-EXTERNAL-IP/swagger" rel="noopener noreferrer"&gt;http://YOUR-EXTERNAL-IP/swagger&lt;/a&gt;  # Windows&lt;br&gt;
&lt;strong&gt;9. Test Continuous Deployment&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Make a Code Change&lt;/strong&gt;&lt;br&gt;
Edit WeatherApp/Program.cs and update the welcome message:&lt;br&gt;
app.MapGet("/", () =&amp;gt; new&lt;br&gt;
{&lt;br&gt;
    Message = "Hurray! Welcome to the Updated Weather App! 🌤️",&lt;br&gt;
    Version = "1.1.0",&lt;br&gt;
    Environment = app.Environment.EnvironmentName,&lt;br&gt;
    Timestamp = DateTime.UtcNow,&lt;br&gt;
    DeployedBy = "GitHub Actions"&lt;br&gt;
})&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjjdeufe6cz30jswue4ri.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjjdeufe6cz30jswue4ri.png" alt="gob" width="800" height="657"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Deploy the Changes by running the following code&lt;/strong&gt;&lt;br&gt;
git add ../Weatherapp/Program.cs&lt;br&gt;
git commit -m "Update welcome message and version"&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnd4k9s9fl77ofmkaaeox.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnd4k9s9fl77ofmkaaeox.png" alt="DES" width="800" height="295"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faxeuqhrcvca0r7ob16rq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faxeuqhrcvca0r7ob16rq.png" alt="pok" width="800" height="300"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85kmjxrt5uocq3dovt40.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85kmjxrt5uocq3dovt40.png" alt="gok" width="800" height="260"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh69ly68rsr23arfpwein.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh69ly68rsr23arfpwein.png" alt="vab" width="800" height="268"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;# Test the endpoints on a browser&lt;/strong&gt;&lt;br&gt;
&lt;a href="http://YOUR-EXTERNAL-IP/swagger" rel="noopener noreferrer"&gt;http://YOUR-EXTERNAL-IP/swagger&lt;/a&gt;&lt;br&gt;
&lt;a href="http://4.157.170.214" rel="noopener noreferrer"&gt;http://4.157.170.214&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsk4vl5h189ssi5giscqd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsk4vl5h189ssi5giscqd.png" alt="gat" width="800" height="94"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;10. Clean Up Resources (Optional)&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Option 1: Delete Individual Resources&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Delete Kubernetes resources
&lt;/h1&gt;

&lt;p&gt;kubectl delete -f k8s/&lt;/p&gt;

&lt;h1&gt;
  
  
  Delete AKS cluster
&lt;/h1&gt;

&lt;p&gt;az aks delete --resource-group student-demo --name student-aks-cluster --yes&lt;/p&gt;

&lt;h1&gt;
  
  
  Delete Container Registry
&lt;/h1&gt;

&lt;p&gt;az acr delete --name studentdemo2024acr --yes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 2: Delete Everything (Recommended)&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Delete the entire resource group (removes all Azure resources)
&lt;/h1&gt;

&lt;p&gt;az group delete --name student-demo --yes --no-wait&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Conclusion: Seamless Deployment, Scalable Success&lt;/strong&gt;&lt;br&gt;
Deploying a .NET 9 application to Azure Kubernetes Service (AKS) is no longer a daunting task—it’s a streamlined process that empowers developers to harness the full potential of cloud-native architecture. You ensure a robust, scalable, and resilient deployment pipeline by following the outlined procedures—from containerizing the app to configuring YAML manifests and leveraging Azure CLI. With AKS and .NET 9 working in tandem, your applications are primed for performance, agility, and future growth.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>devops</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>Procedures for creating a sample resume and pushing it to GitHub Pages.</title>
      <dc:creator>Nelson Akpa</dc:creator>
      <pubDate>Thu, 24 Apr 2025 04:57:33 +0000</pubDate>
      <link>https://dev.to/nelson_akpa01/procedures-for-creating-a-sample-resume-and-pushing-it-to-github-pages-4nfi</link>
      <guid>https://dev.to/nelson_akpa01/procedures-for-creating-a-sample-resume-and-pushing-it-to-github-pages-4nfi</guid>
      <description>&lt;p&gt;&lt;strong&gt;Table of contents&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction &lt;/li&gt;
&lt;li&gt;Download Git Bash&lt;/li&gt;
&lt;li&gt;Configure Git Bash&lt;/li&gt;
&lt;li&gt;Work with the configured environment&lt;/li&gt;
&lt;li&gt;Clone your GitHub repo&lt;/li&gt;
&lt;li&gt;Push to GitHub&lt;/li&gt;
&lt;li&gt;Conclusion.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
Creating an online resume can effectively showcase your skills and experience to potential employers, while also demonstrating your proficiency in web technologies. In this guide, you'll learn how to craft a professional resume, format it for web presentation, and host it on GitHub Pages—a free and accessible platform for personal websites. Whether you're new to GitHub or looking to refine your online portfolio, this step-by-step approach will ensure your resume is well-structured and easily accessible to recruiters. Let's get started!&lt;/p&gt;

&lt;p&gt;2.0 &lt;strong&gt;Downloading Git Bash&lt;/strong&gt;&lt;br&gt;
2.1. Go to the link git-scm.com and download the software for Mac if you're using macOS. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5jbv8vubmn1hvjql2ek.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5jbv8vubmn1hvjql2ek.png" alt="GEM" width="800" height="469"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzcmw98khy01kih0xok4j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzcmw98khy01kih0xok4j.png" alt="dat" width="800" height="430"&gt;&lt;/a&gt;&lt;br&gt;
2.2. Install &lt;strong&gt;Homebrew&lt;/strong&gt; by going to the website "brew.sh"&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foma9c9o3y8xo851i4zvx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foma9c9o3y8xo851i4zvx.png" alt="ber" width="800" height="429"&gt;&lt;/a&gt;&lt;br&gt;
2.3. Please copy the &lt;strong&gt;link&lt;/strong&gt; and paste it into your &lt;strong&gt;Mac terminal&lt;/strong&gt;; then, &lt;strong&gt;press&lt;/strong&gt; the &lt;strong&gt;Enter&lt;/strong&gt; key.&lt;br&gt;
/bin/bash -c "$(curl -fsSL &lt;a href="https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" rel="noopener noreferrer"&gt;https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&lt;/a&gt;"&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftv4z4sixtbma6cjzsz2k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftv4z4sixtbma6cjzsz2k.png" alt="gem" width="800" height="279"&gt;&lt;/a&gt;&lt;br&gt;
2.4. Input your computer &lt;strong&gt;password&lt;/strong&gt; and &lt;strong&gt;click&lt;/strong&gt; the &lt;strong&gt;Enter&lt;/strong&gt; key&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jalflz24zh7gjtsxisn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jalflz24zh7gjtsxisn.png" alt="ball" width="800" height="286"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Click&lt;/strong&gt; the &lt;strong&gt;Enter&lt;/strong&gt; key again to continue &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffc7vwtekbapsiwnns8x2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffc7vwtekbapsiwnns8x2.png" alt="get" width="800" height="419"&gt;&lt;/a&gt;&lt;br&gt;
2.5. &lt;strong&gt;Run&lt;/strong&gt; "brew help" to get started&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4kauxre5kc0hecn24mb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4kauxre5kc0hecn24mb.png" alt="bao" width="800" height="314"&gt;&lt;/a&gt;&lt;br&gt;
2.6. &lt;strong&gt;Type&lt;/strong&gt; "brew --version" and click &lt;strong&gt;Enter&lt;/strong&gt; key&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bya2vle5pnfk5gpcg28.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bya2vle5pnfk5gpcg28.png" alt="bam" width="800" height="202"&gt;&lt;/a&gt;&lt;br&gt;
2.7. To install &lt;strong&gt;git&lt;/strong&gt;, type brew install git and press the &lt;strong&gt;Enter&lt;/strong&gt; key&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6phgqsaky57kyfqmmu0m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6phgqsaky57kyfqmmu0m.png" alt="bag" width="800" height="193"&gt;&lt;/a&gt;&lt;br&gt;
If &lt;strong&gt;Git&lt;/strong&gt; is already installed, you can type '&lt;strong&gt;brew reinstall git&lt;/strong&gt;' and press the &lt;strong&gt;Enter&lt;/strong&gt; key. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdjgev5naji0hecbcei4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdjgev5naji0hecbcei4.png" alt="nob" width="800" height="233"&gt;&lt;/a&gt;&lt;br&gt;
To ensure &lt;strong&gt;git&lt;/strong&gt; is installed, &lt;strong&gt;run&lt;/strong&gt; 'git --version'&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5h1pydw05ao9m2e12q4i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5h1pydw05ao9m2e12q4i.png" alt="bas" width="800" height="125"&gt;&lt;/a&gt;&lt;br&gt;
Open the &lt;strong&gt;link&lt;/strong&gt; &lt;a href="https://realcloudprojects.github.io/Git-lesson-101/#configure--gitbash" rel="noopener noreferrer"&gt;https://realcloudprojects.github.io/Git-lesson-101/#configure--gitbash&lt;/a&gt; in a separate tab and follow the steps.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpc05el5bfk2g5owgkd3x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpc05el5bfk2g5owgkd3x.png" alt="gat" width="800" height="426"&gt;&lt;/a&gt; &lt;br&gt;
3.0. &lt;strong&gt;Configure Git Bash&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Run&lt;/strong&gt; 'git config –global user.name “name”'. Here, you can input any name. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcqckisagqoekymqevxe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcqckisagqoekymqevxe.png" alt="bok" width="800" height="88"&gt;&lt;/a&gt;&lt;br&gt;
3.1. Run 'git config –global user.email “email”. Here, insert a valid email.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgc627dhruxnhc19h9l1y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgc627dhruxnhc19h9l1y.png" alt="kop" width="800" height="98"&gt;&lt;/a&gt;&lt;br&gt;
3.2. To verify, &lt;strong&gt;run&lt;/strong&gt; 'git config --list'&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1hbisceo565z90k7qok7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1hbisceo565z90k7qok7.png" alt="gal" width="800" height="143"&gt;&lt;/a&gt; &lt;br&gt;
4.0. &lt;strong&gt;Work with the configured environment&lt;/strong&gt;&lt;br&gt;
4.1. Run 'mkdir website' &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwss9eei4j9891wtyfa4r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwss9eei4j9891wtyfa4r.png" alt="pol" width="800" height="66"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Access&lt;/strong&gt; the directory(website) by running 'cd website'&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqwq9xem6vqcuodrczsca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqwq9xem6vqcuodrczsca.png" alt="boy" width="800" height="79"&gt;&lt;/a&gt;&lt;br&gt;
4.2. &lt;strong&gt;Initialize&lt;/strong&gt; the &lt;strong&gt;directory&lt;/strong&gt; by running 'git init'&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwkupd7sed41g2b55kvhm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwkupd7sed41g2b55kvhm.png" alt="nab" width="800" height="113"&gt;&lt;/a&gt;&lt;br&gt;
4.3. &lt;strong&gt;Run&lt;/strong&gt; 'git status' to confirm the empty directory.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh9jaiul7v63ojxgnoft2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh9jaiul7v63ojxgnoft2.png" alt="bok" width="800" height="124"&gt;&lt;/a&gt;&lt;br&gt;
4.4. &lt;strong&gt;Create&lt;/strong&gt; a &lt;strong&gt;file&lt;/strong&gt; by running 'touch index.html'&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F42o2mgwy3sujexeloett.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F42o2mgwy3sujexeloett.png" alt="hug" width="800" height="96"&gt;&lt;/a&gt;&lt;br&gt;
4.5. To fill in the empty &lt;strong&gt;index.html&lt;/strong&gt; file, first open it with 'vim index.html'. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7roto391fimm8rxtvme.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7roto391fimm8rxtvme.png" alt="BAG" width="800" height="447"&gt;&lt;/a&gt;&lt;br&gt;
4.6. To start writing in it, press the &lt;strong&gt;'I'&lt;/strong&gt; key for Insert and then go to ChatGPT to copy a resume code. Then, paste it into the empty file.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmniusnugrdpz75kvs2fv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmniusnugrdpz75kvs2fv.png" alt="bon" width="800" height="226"&gt;&lt;/a&gt;&lt;br&gt;
4.7. Go to &lt;strong&gt;ChatGPT&lt;/strong&gt; and type 'sample index.html resume', then copy and paste into your git.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpow1zxqhpkjfy4inz0u4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpow1zxqhpkjfy4inz0u4.png" alt="bot" width="800" height="509"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fouvbaksdnooinrg5ouy9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fouvbaksdnooinrg5ouy9.png" alt="dat" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
4.8. Edit the name, email, and phone number in the resume. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F00uzvhwue96i9f65d8e0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F00uzvhwue96i9f65d8e0.png" alt="bol" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
4.9. &lt;strong&gt;Press&lt;/strong&gt; the Shift + Esc key and then press the Shift + semicolon, enter wq ( w=save and q=quit), then press the Enter key. This returns you to the main page. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F113yqdex7fkvl64uk1fg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F113yqdex7fkvl64uk1fg.png" alt="gau" width="800" height="270"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn87y6p9aber64bsx97ch.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn87y6p9aber64bsx97ch.png" alt="ban" width="800" height="224"&gt;&lt;/a&gt; &lt;br&gt;
5.0. &lt;strong&gt;Clone your GitHub repo&lt;/strong&gt;&lt;br&gt;
5.1. Log in to your &lt;strong&gt;GitHub&lt;/strong&gt; account and click on the + sign button to create a new repository.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs859ujgb8g61q0yagvil.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs859ujgb8g61q0yagvil.png" alt="dem" width="800" height="419"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3ac81t1n2y06g9iuow1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3ac81t1n2y06g9iuow1.png" alt="bed" width="800" height="317"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx1tobkgcklyusdqee7pv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx1tobkgcklyusdqee7pv.png" alt="bom" width="800" height="282"&gt;&lt;/a&gt;&lt;br&gt;
5.2. &lt;strong&gt;Copy the code&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu0tcjyo6igp3ofrfvqsv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu0tcjyo6igp3ofrfvqsv.png" alt="hop" width="800" height="355"&gt;&lt;/a&gt;&lt;br&gt;
5.3. Go back to your &lt;strong&gt;git bash&lt;/strong&gt; and &lt;strong&gt;run&lt;/strong&gt; 'git remote add origin &lt;a href="https://github.com/Nelsinclair1/Git-class101.git" rel="noopener noreferrer"&gt;https://github.com/Nelsinclair1/Git-class101.git&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl6ejwv2a7ix9xfxn3if4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl6ejwv2a7ix9xfxn3if4.png" alt="bob" width="800" height="254"&gt;&lt;/a&gt;&lt;br&gt;
(You can type '&lt;strong&gt;clear&lt;/strong&gt;' in your git bash to create space, but your work is still saved)&lt;/p&gt;

&lt;p&gt;6.0. &lt;strong&gt;Push to GitHub&lt;/strong&gt;&lt;br&gt;
6.1. First, try verifying git status&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Futuvrstu2k5q3ev8qkjd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Futuvrstu2k5q3ev8qkjd.png" alt="gob" width="800" height="165"&gt;&lt;/a&gt;&lt;br&gt;
6.2. &lt;strong&gt;Run&lt;/strong&gt; 'git add index.html' to track the file.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faamigj5zsx8thpeymb81.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faamigj5zsx8thpeymb81.png" alt="top" width="800" height="100"&gt;&lt;/a&gt;&lt;br&gt;
6.3. Run git commit -m “my first commit”&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywu9zi23hynvu5kjnykh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywu9zi23hynvu5kjnykh.png" alt="and" width="800" height="101"&gt;&lt;/a&gt;&lt;br&gt;
6.4. &lt;strong&gt;Run&lt;/strong&gt; 'git push origin master'&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqyo9v7i6n2ti0b0p0ccs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqyo9v7i6n2ti0b0p0ccs.png" alt="got" width="800" height="156"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0pbmvhkhppjj7cegyzlw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0pbmvhkhppjj7cegyzlw.png" alt="dot" width="800" height="83"&gt;&lt;/a&gt;&lt;br&gt;
6.5. &lt;strong&gt;Input your GitHub account password&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9mj2u47ghnun4dzhbioz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9mj2u47ghnun4dzhbioz.png" alt="BAH" width="800" height="128"&gt;&lt;/a&gt;&lt;br&gt;
6.6. &lt;strong&gt;Go to&lt;/strong&gt; 'GitHub Personal Access Tokens settings' and generate a Personal Access Token (PAT). Then, please copy and paste it as your password.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthykkci4cpy8jww3wvl6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthykkci4cpy8jww3wvl6.png" alt="dat" width="800" height="346"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fav6ae4hvz0p31v4s2fin.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fav6ae4hvz0p31v4s2fin.png" alt="bol" width="800" height="385"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2qf7412kud6sgl09zejm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2qf7412kud6sgl09zejm.png" alt="hio" width="800" height="327"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flo0uik0itch0utdasgb1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flo0uik0itch0utdasgb1.png" alt="bok" width="800" height="323"&gt;&lt;/a&gt;&lt;br&gt;
The &lt;strong&gt;repository&lt;/strong&gt; was successfully pushed to &lt;strong&gt;GitHub&lt;/strong&gt;. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdzxd4d6kgfqulgqthmzr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdzxd4d6kgfqulgqthmzr.png" alt="bol" width="800" height="93"&gt;&lt;/a&gt;&lt;br&gt;
6.7. &lt;strong&gt;Go to&lt;/strong&gt; your &lt;strong&gt;GitHub&lt;/strong&gt; to compare the pull request&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fto7arq9uw0v3tj66mih8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fto7arq9uw0v3tj66mih8.png" alt="gop" width="800" height="363"&gt;&lt;/a&gt;&lt;br&gt;
Nothing to compare as shown below&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecj3czrafzyfyh7gs7yd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecj3czrafzyfyh7gs7yd.png" alt="hop" width="800" height="314"&gt;&lt;/a&gt;&lt;br&gt;
6.8. &lt;strong&gt;Locate&lt;/strong&gt; the &lt;strong&gt;new repository&lt;/strong&gt; and confirm that it contains the same file pushed from your Git Bash. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ql1wnhy0dy50jea5u2h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ql1wnhy0dy50jea5u2h.png" alt="lop" width="800" height="275"&gt;&lt;/a&gt;&lt;br&gt;
6.9. &lt;strong&gt;Click to open the file&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgy7ujnaetnxmij6rfoqt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgy7ujnaetnxmij6rfoqt.png" alt="bin" width="800" height="373"&gt;&lt;/a&gt;&lt;br&gt;
6.10. &lt;strong&gt;Click on Settings&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flwgv0go5mry4icab0ler.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flwgv0go5mry4icab0ler.png" alt="get" width="800" height="377"&gt;&lt;/a&gt;&lt;br&gt;
6.11. &lt;strong&gt;Click on pages&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn30o4bk4mit66b4slkaq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn30o4bk4mit66b4slkaq.png" alt="jop" width="800" height="409"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5hvvgnjyrf5kgb5o51u7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5hvvgnjyrf5kgb5o51u7.png" alt="kol" width="800" height="402"&gt;&lt;/a&gt;&lt;br&gt;
6.12. &lt;strong&gt;Deploy from the Main branch&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxqil01z2fbhg4466s7sz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxqil01z2fbhg4466s7sz.png" alt="jai" width="800" height="383"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhwqykr6kycf9cgvcc3xu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhwqykr6kycf9cgvcc3xu.png" alt="bop" width="800" height="376"&gt;&lt;/a&gt;&lt;br&gt;
6.13. &lt;strong&gt;Refresh the page&lt;/strong&gt; after a minute and click on 'visit site'&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq3h7pp1ei77gnefl6sw4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq3h7pp1ei77gnefl6sw4.png" alt="bas" width="800" height="406"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Site displayed successfully&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxcy0dzll8n1h20lf40l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxcy0dzll8n1h20lf40l.png" alt="gom" width="800" height="564"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
This article provides a concise, step-by-step guide to creating an online resume and hosting it on GitHub Pages. It outlines the process of formatting your resume for web presentation, uploading the necessary files to GitHub, and deploying your site. By following these procedures, you'll not only present your professional information effectively but also showcase your technical skills to potential employers. This practical approach ensures your resume is both visually appealing and easily accessible to recruiters.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>A step-by-step guide to providing storage for a new company app on the Azure portal.</title>
      <dc:creator>Nelson Akpa</dc:creator>
      <pubDate>Thu, 10 Apr 2025 19:47:35 +0000</pubDate>
      <link>https://dev.to/nelson_akpa01/a-step-by-step-guide-to-providing-storage-for-a-new-company-app-on-the-azure-portal-55e7</link>
      <guid>https://dev.to/nelson_akpa01/a-step-by-step-guide-to-providing-storage-for-a-new-company-app-on-the-azure-portal-55e7</guid>
      <description>&lt;p&gt;&lt;strong&gt;Table of contents&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction &lt;/li&gt;
&lt;li&gt;Create the storage account and manage identity.&lt;/li&gt;
&lt;li&gt;Secure access to the storage account with a key vault and key.&lt;/li&gt;
&lt;li&gt;Configure the storage account to use the customer-managed key in the key vault&lt;/li&gt;
&lt;li&gt;Configure a time-based retention policy and an encryption scope.4.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;First, click on the link and follow the instructions from the cloud projects. &lt;br&gt;
(&lt;a href="https://microsoftlearning.github.io/Secure-storage-for-Azure-Files-and-Azure-Blob-Storage/Instructions/Labs/LAB_04_storage_web_app.html" rel="noopener noreferrer"&gt;https://microsoftlearning.github.io/Secure-storage-for-Azure-Files-and-Azure-Blob-Storage/Instructions/Labs/LAB_04_storage_web_app.html&lt;/a&gt;)&lt;br&gt;
Introduction &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
Setting up storage on the Azure portal is a crucial step when launching a new company app. This guide provides a clear, step-by-step process to configure storage that ensures your app's data is secure, scalable, and easily accessible. Whether you're managing user data or application resources, this guide equips you with the tools to support your app's success in a reliable cloud environment.&lt;/p&gt;

&lt;p&gt;2.0. &lt;strong&gt;Create the storage account and managed identity&lt;/strong&gt;.&lt;br&gt;
2.1. &lt;strong&gt;Provide a storage account for the web app&lt;/strong&gt;.&lt;br&gt;
In the portal, search for and select Storage accounts.&lt;br&gt;
Select + Create.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxqw2h5n04or7fxiidiof.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxqw2h5n04or7fxiidiof.png" alt="cap" width="800" height="124"&gt;&lt;/a&gt;&lt;br&gt;
For the Resource group select &lt;strong&gt;Create New&lt;/strong&gt;. Give your &lt;strong&gt;resource group&lt;/strong&gt; a name and select OK to save your changes.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fojhhdl5i3229wc34awex.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fojhhdl5i3229wc34awex.png" alt="vad" width="800" height="354"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Provide a Storage account name. Ensure the name is unique and meets the naming requirements&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kq1l5wakbsm03f3rvb4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kq1l5wakbsm03f3rvb4.png" alt="pad" width="800" height="250"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Move to the Encryption tab and check the box for Enable infrastructure encryption&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftxj35xvefl1xtlxl25hl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftxj35xvefl1xtlxl25hl.png" alt="fad" width="800" height="447"&gt;&lt;/a&gt;&lt;br&gt;
Notice the warning, This option cannot be changed after this storage account is created.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwi8crb22x5n8zpz4shtm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwi8crb22x5n8zpz4shtm.png" alt="don" width="800" height="310"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Review + Create&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhoroxqg08n7blmxysp0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhoroxqg08n7blmxysp0s.png" alt="bob" width="800" height="682"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj2sqcp7auieysbhd8ezy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj2sqcp7auieysbhd8ezy.png" alt="dam" width="800" height="743"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Wait for the resource to deploy and go to resource&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1e0bp9vxzdpc0xxy7yds.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1e0bp9vxzdpc0xxy7yds.png" alt="done" width="800" height="320"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wfch2l23s9pm5doi4tv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wfch2l23s9pm5doi4tv.png" alt="done" width="800" height="385"&gt;&lt;/a&gt;&lt;br&gt;
2.2. &lt;strong&gt;Provide a managed identity for the web app to use&lt;/strong&gt;.&lt;br&gt;
Search for and select &lt;strong&gt;Managed identities&lt;/strong&gt; and &lt;strong&gt;Select Create&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8zri25dw9yv5xbr35uvy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8zri25dw9yv5xbr35uvy.png" alt="dat" width="800" height="203"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3yb7p3dm79bcftiq5fd8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3yb7p3dm79bcftiq5fd8.png" alt="bag" width="800" height="326"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select your resource group&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6hl3yb5t6nu2xxgfgghv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6hl3yb5t6nu2xxgfgghv.png" alt="done" width="800" height="298"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Give your managed identity a name&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl34kz3l5edyj7x7l45hh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl34kz3l5edyj7x7l45hh.png" alt="great" width="800" height="361"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Review and Create&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6kavrnwcar2lv8ayyu2b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6kavrnwcar2lv8ayyu2b.png" alt="bad" width="800" height="902"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Go to the Resource&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjneoam170z8racacgx7f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjneoam170z8racacgx7f.png" alt="gad" width="800" height="386"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fongmjbjnt06cc9d2fur6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fongmjbjnt06cc9d2fur6.png" alt="gad" width="800" height="267"&gt;&lt;/a&gt;&lt;br&gt;
2.3. &lt;strong&gt;Assign the correct permissions to the managed identity. The identity only needs to read and list containers and blobs&lt;/strong&gt;.&lt;br&gt;
Search for and select your &lt;strong&gt;storage account **and **select the Access Control (IAM) blade&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49fxjb12tkk9nco3pbfd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49fxjb12tkk9nco3pbfd.png" alt="Deb" width="800" height="240"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Add role assignment (center of the page)&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flri12qimx8luxxho3fm9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flri12qimx8luxxho3fm9.png" alt="done" width="800" height="226"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;On the Job functions roles page, search for and select the Storage Blob Data Reader role&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxpxl8724s5v9r468mjsb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxpxl8724s5v9r468mjsb.png" alt="ged" width="800" height="272"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;On the Members page, select Managed identity&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgw8ooxd7g1x2dthvq4rg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgw8ooxd7g1x2dthvq4rg.png" alt="hop" width="800" height="317"&gt;&lt;/a&gt;&lt;br&gt;
Select &lt;strong&gt;Select members&lt;/strong&gt;, in the Managed identity drop-down &lt;strong&gt;select User-assigned managed identity, and select the managed identity you created in the previous step **.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fen2kdta3nvclhtr5e9ei.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fen2kdta3nvclhtr5e9ei.png" alt="dan" width="800" height="388"&gt;&lt;/a&gt;.&lt;br&gt;
**Click Select and then Review + assign the role&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgr3bobqux7rgzu3e8uuz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgr3bobqux7rgzu3e8uuz.png" alt="fad" width="800" height="444"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Review + assign a second time to add the role assignment&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02prf0fyhhs6mtek8b8z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02prf0fyhhs6mtek8b8z.png" alt="jag" width="800" height="477"&gt;&lt;/a&gt;&lt;br&gt;
Your storage account can now be accessed by a managed identity with the Storage Data Blob Reader permissions.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpu1cimnei3k06lt7j0iu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpu1cimnei3k06lt7j0iu.png" alt="good" width="800" height="330"&gt;&lt;/a&gt;.&lt;br&gt;
3.0. &lt;strong&gt;Secure access to the storage account with a key vault and key&lt;/strong&gt;.&lt;br&gt;
3.1. To create the key vault and key needed for this part of the lab, your user account must have Key Vault Administrator permissions.&lt;br&gt;
&lt;strong&gt;In the portal, search for and select Resource Groups&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb27n5xyevm8ekgi25vra.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb27n5xyevm8ekgi25vra.png" alt="doc" width="800" height="124"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select your resource group, and then the Access Control (IAM) blade&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4no17oevkcpfu57rtwvz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4no17oevkcpfu57rtwvz.png" alt="fad" width="800" height="274"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Add role assignment&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc2xbeaevfnfel4r4zr6c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc2xbeaevfnfel4r4zr6c.png" alt="ten" width="800" height="279"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;On the Job functions roles page, search for and select the Key Vault Administrator role&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd58xqnmom1gjz1j5x4aq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd58xqnmom1gjz1j5x4aq.png" alt="got" width="800" height="283"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;On the Members page, select User, group, or service principal.&lt;br&gt;
Select Select members&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fancpmklwqn8j49pcqivc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fancpmklwqn8j49pcqivc.png" alt="bop" width="800" height="259"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4g6jtlmfya824yb71pbd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4g6jtlmfya824yb71pbd.png" alt="dat" width="800" height="389"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Search for and select your user account. Your user account is shown in the top right of the portal&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faj5tdglhrz8ewzflxp5f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faj5tdglhrz8ewzflxp5f.png" alt="bar" width="800" height="929"&gt;&lt;/a&gt;&lt;br&gt;
Click Select and then Review + Assign.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl1l5fcke76vb75pjkn7u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl1l5fcke76vb75pjkn7u.png" alt="good" width="800" height="939"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgmajarutrgoitgj7786.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgmajarutrgoitgj7786.png" alt="dat" width="800" height="467"&gt;&lt;/a&gt;&lt;br&gt;
Select Review + assign a second time to add the role assignment.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F93yi6i4xbxpwz4q4xq98.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F93yi6i4xbxpwz4q4xq98.png" alt="vop" width="800" height="524"&gt;&lt;/a&gt;&lt;br&gt;
You are now ready to continue with the lab.&lt;br&gt;
3.2. &lt;strong&gt;Create a key vault to store the access keys&lt;/strong&gt;.&lt;br&gt;
In the &lt;strong&gt;portal&lt;/strong&gt;, search for and &lt;strong&gt;select Key Vaults&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4un8geg8ut6vegqg8fgs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4un8geg8ut6vegqg8fgs.png" alt="good" width="800" height="283"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Create&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsqfyigj9ru9x7yu3l1xg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsqfyigj9ru9x7yu3l1xg.png" alt="bon" width="800" height="326"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select your resource group&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe5focqa5287ykqlz6xjp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe5focqa5287ykqlz6xjp.png" alt="done" width="800" height="280"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Provide the name for the key vault. The name must be unique&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ivtsmfwsefxapqifxwo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ivtsmfwsefxapqifxwo.png" alt="vok" width="800" height="141"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Ensure on the Access configuration tab that Azure role-based access control (recommended) is selected&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnwtppdynfzsdo9g028ve.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnwtppdynfzsdo9g028ve.png" alt="nab" width="800" height="505"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Review + Create&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjlfbg2e0247ezrluqv74.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjlfbg2e0247ezrluqv74.png" alt="bol" width="800" height="390"&gt;&lt;/a&gt;&lt;br&gt;
Wait for the validation checks to complete and then select Create.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdw4p56e6d60gtnfg0dbo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdw4p56e6d60gtnfg0dbo.png" alt="lop" width="800" height="385"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;After the deployment, select Go to the resource&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fni65u5a2g5q1nd60k90z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fni65u5a2g5q1nd60k90z.png" alt="tok" width="800" height="281"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;On the Overview blade ensure both Soft-delete and Purge protection are enabled&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmqnfo5qghrhmtxsi7pas.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmqnfo5qghrhmtxsi7pas.png" alt="hol" width="800" height="369"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftih671ws6uh4mudhcm6d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftih671ws6uh4mudhcm6d.png" alt="vat" width="800" height="383"&gt;&lt;/a&gt;&lt;br&gt;
3.3. &lt;strong&gt;Create a customer-managed key in the key vault&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;Select the Keys blade in your key vault in the Objects section&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3mw3yxvnzf5d27qs9gt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3mw3yxvnzf5d27qs9gt.png" alt="vat" width="800" height="360"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Generate/Import and Name the key&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1hy323zu95vyyff5dib.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1hy323zu95vyyff5dib.png" alt="hop" width="800" height="388"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl1amtyi65l4j88qgrfk9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl1amtyi65l4j88qgrfk9.png" alt="nab" width="800" height="233"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Take the defaults for the rest of the parameters, and Create the key&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftmqjyi5wlgw6h1rz1va3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftmqjyi5wlgw6h1rz1va3.png" alt="bab" width="800" height="490"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F329q21bbawdu05ikjaw4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F329q21bbawdu05ikjaw4.png" alt="fad" width="800" height="387"&gt;&lt;/a&gt;&lt;br&gt;
4.0. &lt;strong&gt;Configure the storage account to use the customer-managed key in the key vault&lt;/strong&gt;.&lt;br&gt;
4.1. Before you can complete the next steps, &lt;strong&gt;you must assign the Key Vault Crypto Service Encryption User role to the managed identity&lt;/strong&gt;.&lt;br&gt;
In the portal, search for and select Resource Groups.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8a9ye9tkif3rj8hfwgk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu8a9ye9tkif3rj8hfwgk.png" alt="gem" width="800" height="386"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select your resource group, and then the Access Control (IAM) blade&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd17lo5f9j617ckena574.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd17lo5f9j617ckena574.png" alt="boj" width="800" height="293"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Add role assignment&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg6ostdfsl3s3cmt83a9l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg6ostdfsl3s3cmt83a9l.png" alt="ban" width="800" height="237"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;On the Job functions roles page, search for and select the Key Vault Crypto Service Encryption User role&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupe9uw47duumkqi288vq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupe9uw47duumkqi288vq.png" alt="bed" width="800" height="300"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;On the Members page, select Managed identity&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2xegskq6kwqoceg9xiha.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2xegskq6kwqoceg9xiha.png" alt="ham" width="800" height="194"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Select members, in the Managed identity drop-down select User-assigned managed identity&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdx7b3jm0napru28avk7c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdx7b3jm0napru28avk7c.png" alt="gom" width="800" height="337"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select your managed identity&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzsmjwnmsf4nakzeafrkw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzsmjwnmsf4nakzeafrkw.png" alt="bad" width="800" height="946"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Click Select and then Review + assign&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqb9qe596c6svw30q7y0v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqb9qe596c6svw30q7y0v.png" alt="do" width="800" height="422"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Review + assign a second time to add the role assignment&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffssixe587431xzrmjufg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffssixe587431xzrmjufg.png" alt="bon" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frdb5oat5cw3mt7sirbyo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frdb5oat5cw3mt7sirbyo.png" alt="fad" width="800" height="381"&gt;&lt;/a&gt;&lt;br&gt;
4.2. &lt;strong&gt;Configure the storage account to use the customer-managed key in your key vault&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;Return to your storage account&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnqoqfjx55knpattsmqs7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnqoqfjx55knpattsmqs7.png" alt="nab" width="800" height="236"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;In the Security + networking section, select the Encryption blade.&lt;br&gt;
Select Customer-managed keys&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxj579zspnqvsvf3z6pze.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxj579zspnqvsvf3z6pze.png" alt="ede" width="800" height="391"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select a key vault and key then Select your key vault and key&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvrcywg819dggv10fsyt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvrcywg819dggv10fsyt.png" alt="sag" width="800" height="244"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select to confirm your choices&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7et4btq7zcxsobmf5vnx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7et4btq7zcxsobmf5vnx.png" alt="poj" width="800" height="654"&gt;&lt;/a&gt;&lt;br&gt;
Ensure the Identity type is User-assigned.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo80wvrgj3rsy7jhgc5ky.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo80wvrgj3rsy7jhgc5ky.png" alt="nao" width="800" height="141"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select an identity&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4kcued7pxkzfk9gc4es.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4kcued7pxkzfk9gc4es.png" alt="ban" width="800" height="153"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select your managed identity then select Add&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fim992v66fpw97fy000hu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fim992v66fpw97fy000hu.png" alt="bob" width="800" height="935"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Save your changes&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0prkif8w2n2je8opfkf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0prkif8w2n2je8opfkf.png" alt="baf" width="800" height="388"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4jhkby0mhdgc8m8f86ne.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4jhkby0mhdgc8m8f86ne.png" alt="hod" width="800" height="227"&gt;&lt;/a&gt;&lt;br&gt;
If you receive an error that your identity does not have the correct permissions, wait a minute and try again.&lt;br&gt;
5.0. &lt;strong&gt;Configure a time-based retention policy and an encryption scope&lt;/strong&gt;.&lt;br&gt;
5.1. &lt;strong&gt;Navigate to your storage account&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jponjsg09omx07ifnig.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jponjsg09omx07ifnig.png" alt="bat" width="800" height="196"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;In the Data storage section, select the Containers blade&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9l4aozwabklk1hcv3u1f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9l4aozwabklk1hcv3u1f.png" alt="man" width="800" height="246"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Create a container called hold. Take the defaults. Be sure to Create the container&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh970l6n85sn4iaelqa7v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh970l6n85sn4iaelqa7v.png" alt="blob" width="800" height="386"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Upload a file to the container&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv1ccw8p29h6u4y6fgn1y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv1ccw8p29h6u4y6fgn1y.png" alt="pad" width="800" height="226"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0b7wa2wozmjsh7a06l6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0b7wa2wozmjsh7a06l6.png" alt="gau" width="800" height="249"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;In the Settings section, select the Access policy blade&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F93p4exsq3cem9hbqpyf9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F93p4exsq3cem9hbqpyf9.png" alt="gok" width="800" height="297"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;In the Immutable Blob storage section, select + Add policy&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyb2zq2mjlei5ulslk9o2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyb2zq2mjlei5ulslk9o2.png" alt="get" width="800" height="323"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;For the Policy type, select time-based retention, set the retention period to 5 days, and Save your changes&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupgd6fkh1u7x2kvc9yel.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupgd6fkh1u7x2kvc9yel.png" alt="get" width="800" height="384"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Please try to delete the file in the container and verify that you are notified that you failed to delete blobs due to policy&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fna1prnsvz8rp9r22md3o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fna1prnsvz8rp9r22md3o.png" alt="bag" width="800" height="354"&gt;&lt;/a&gt;&lt;br&gt;
5.2. &lt;strong&gt;The developers require an encryption scope that enables infrastructure encryption&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;Navigate back to your storage account, in the Security + networking blade, select Encryption&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbsuusbe52pv6cy0ghfql.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbsuusbe52pv6cy0ghfql.png" alt="fad" width="800" height="391"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;In the Encryption scopes tab, select Add and give your encryption scope a name&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2tcno7g3hie13j1kn98d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2tcno7g3hie13j1kn98d.png" alt="dem" width="800" height="352"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;The Encryption type is Microsoft-managed key and set Infrastructure encryption to Enable and then create the encryption scope&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9o3gqr6uhtpo0in3zfm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9o3gqr6uhtpo0in3zfm.png" alt="bag" width="800" height="714"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5m6sqdzade2zt3dc4uqo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5m6sqdzade2zt3dc4uqo.png" alt="back" width="800" height="318"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Return to your storage account and create a new container&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4m15wref2rp6nrw884h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4m15wref2rp6nrw884h.png" alt="bed" width="800" height="239"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjxw4on6ujdbbwamtpctf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjxw4on6ujdbbwamtpctf.png" alt="gad" width="800" height="1226"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Notice on the New container page, there is the Name and Public access level&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2dxfg0ljsz8n6orm05nr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2dxfg0ljsz8n6orm05nr.png" alt="gap" width="800" height="248"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Notice in the Advanced section you can select the Encryption scope you created and apply it to all blobs in the container&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7t3cmna6qif3spmzmw1x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7t3cmna6qif3spmzmw1x.png" alt="deb" width="800" height="954"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftj3xk31cfamjylcberlh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftj3xk31cfamjylcberlh.png" alt="gok" width="800" height="996"&gt;&lt;/a&gt;&lt;br&gt;
In &lt;strong&gt;conclusion&lt;/strong&gt;, providing storage for your new company app on the Azure portal is a straightforward process when broken into manageable steps. By leveraging Azure's powerful features and intuitive interface, you can ensure secure and efficient storage tailored to your app's needs. This guide aims to empower you to make informed decisions and optimize your cloud storage setup, setting a strong foundation for your app's success. Happy building!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Step-by-step guide on Providing shared file storage for the company offices on Azure Portal.</title>
      <dc:creator>Nelson Akpa</dc:creator>
      <pubDate>Tue, 08 Apr 2025 02:18:01 +0000</pubDate>
      <link>https://dev.to/nelson_akpa01/step-by-step-guide-on-providing-shared-file-storage-for-the-company-offices-on-azure-portal-2bed</link>
      <guid>https://dev.to/nelson_akpa01/step-by-step-guide-on-providing-shared-file-storage-for-the-company-offices-on-azure-portal-2bed</guid>
      <description>&lt;p&gt;&lt;strong&gt;Table of contents&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1&lt;/strong&gt;. Introduction &lt;br&gt;
&lt;strong&gt;2&lt;/strong&gt;. Create a storage account specifically for file shares.&lt;br&gt;
&lt;strong&gt;3&lt;/strong&gt;. Configure a file share and directory.&lt;br&gt;
&lt;strong&gt;4&lt;/strong&gt;. Configure snapshots and practice restoring files.&lt;br&gt;
&lt;strong&gt;5&lt;/strong&gt;. Configure restricting storage access to selected virtual networks and subnets. &lt;br&gt;
&lt;strong&gt;6&lt;/strong&gt;. Conclusion. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;.&lt;br&gt;
Setting up shared file storage on the Azure Portal enhances collaboration and streamlines access to files across company offices. This guide provides a straightforward, step-by-step approach to provisioning and configuring storage that ensures scalability, security, and ease of use for your organization's shared resources. Whether managing day-to-day operations or supporting team projects, this guide equips you with the tools to optimize file sharing within your company.&lt;/p&gt;

&lt;p&gt;First, search the link and follow the instructions on the Azure cloud storage exercises (&lt;a href="https://microsoftlearning.github.io/Secure-storage-for-Azure-Files-and-Azure-Blob-Storage/Instructions/Labs/LAB_03_storage_file_shares.html" rel="noopener noreferrer"&gt;https://microsoftlearning.github.io/Secure-storage-for-Azure-Files-and-Azure-Blob-Storage/Instructions/Labs/LAB_03_storage_file_shares.html&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;2.0. &lt;strong&gt;Create a storage account specifically for file shares&lt;/strong&gt;&lt;br&gt;
2.1. &lt;strong&gt;Create a storage account for the finance department’s shared files&lt;/strong&gt;. &lt;br&gt;
log in to the &lt;strong&gt;Azure portal&lt;/strong&gt;, search for and select Storage accounts.&lt;br&gt;
Select &lt;strong&gt;+ Create&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmytp29drtqfras5ei6f0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmytp29drtqfras5ei6f0.png" alt="ada" width="800" height="507"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;For the Resource group select Create new. Give your resource group a name and select OK to save your changes&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyw128i5bwa5f644wofez.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyw128i5bwa5f644wofez.png" alt="new" width="800" height="354"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Provide a Storage account name. Ensure the name meets the naming requirements&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgwd3fowv9mpyv734kn8n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgwd3fowv9mpyv734kn8n.png" alt="gof" width="800" height="142"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Set the Performance to Premium&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdr4tjia0kuxysqcm6abt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdr4tjia0kuxysqcm6abt.png" alt="get" width="800" height="72"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Set the Premium account type to File shares&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2ykpgkmp09ttwfrkx5t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2ykpgkmp09ttwfrkx5t.png" alt="dem" width="800" height="266"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Set the Redundancy to Zone-redundant storage&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffsu2u6jntxzugg603si3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffsu2u6jntxzugg603si3.png" alt="bed" width="800" height="288"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Review and then Create the storage account&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1pn7y673uw338mbzq3j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1pn7y673uw338mbzq3j.png" alt="hot" width="800" height="620"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk3kfio9trqoq7y6vkd8s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk3kfio9trqoq7y6vkd8s.png" alt="bro" width="800" height="736"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Wait for the resource to deploy&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6isgh0csobcpzp7q5cw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo6isgh0csobcpzp7q5cw.png" alt="good" width="800" height="461"&gt;&lt;/a&gt;&lt;br&gt;
Select &lt;strong&gt;Go to the resource&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbuu3xwpuocxzalazhgdz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbuu3xwpuocxzalazhgdz.png" alt="ret" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fymxcyanhv495ijrg79yg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fymxcyanhv495ijrg79yg.png" alt="for" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
3.0. &lt;strong&gt;Create and configure a file share with directory&lt;/strong&gt;.&lt;br&gt;
3.1. &lt;strong&gt;Create a file share for the corporate office&lt;/strong&gt;.&lt;br&gt;
In the storage account, in the Data storage section, select the File shares blade.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3llca94z2typjmd5u670.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3llca94z2typjmd5u670.png" alt="gov" width="800" height="374"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select + File share and provide a Name&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fovqh660xhqfv0jfwcduv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fovqh660xhqfv0jfwcduv.png" alt="poy" width="800" height="216"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxybi3lzp923f2k6uyuyq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxybi3lzp923f2k6uyuyq.png" alt="vrt" width="800" height="345"&gt;&lt;/a&gt;&lt;br&gt;
Review the other options, but take the defaults.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flv4jlvjhrn4extpx3h25.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flv4jlvjhrn4extpx3h25.png" alt="tot" width="800" height="604"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Create&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsl77dd8ii4lvly6wcvpu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsl77dd8ii4lvly6wcvpu.png" alt="boi" width="800" height="610"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw8tjfcxmv6sj7k6mhx65.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw8tjfcxmv6sj7k6mhx65.png" alt="kol" width="800" height="483"&gt;&lt;/a&gt;&lt;br&gt;
3.2. &lt;strong&gt;Add a directory to the file share for the finance department. For future testing, upload a file&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;Select your file share and select + Add directory&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxe3ykgwoebhskbr9phxx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxe3ykgwoebhskbr9phxx.png" alt="for" width="800" height="228"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Name the new directory finance&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fie58g77d0c9m6oxbbr65.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fie58g77d0c9m6oxbbr65.png" alt="bok" width="800" height="232"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Browse and then select the finance directory&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4b9cxhwerxkc50ex15ad.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4b9cxhwerxkc50ex15ad.png" alt="gog" width="800" height="233"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqism45fwvzdu5h05tfwq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqism45fwvzdu5h05tfwq.png" alt="hol" width="800" height="206"&gt;&lt;/a&gt;&lt;br&gt;
Notice you can Add a directory to further organize your file share.&lt;br&gt;
&lt;strong&gt;Upload a file of your choosing&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjn558kur83yi7qd9hz9i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjn558kur83yi7qd9hz9i.png" alt="bop" width="800" height="200"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flndxadk09jl0bsprfm81.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flndxadk09jl0bsprfm81.png" alt="pop" width="800" height="216"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjrb60iylnlp31u1z72qw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjrb60iylnlp31u1z72qw.png" alt="got" width="800" height="272"&gt;&lt;/a&gt;&lt;br&gt;
4.0. &lt;strong&gt;Configure snapshots and practice restoring files&lt;/strong&gt;.&lt;br&gt;
Similar to blob storage, you need to protect against accidental deletion of files. You decide to use snapshots. &lt;br&gt;
4.1. &lt;strong&gt;Select your file share&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F29dypm8lsqj7fur9i0fk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F29dypm8lsqj7fur9i0fk.png" alt="get" width="800" height="273"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;In the Operations section, select the Snapshots blade&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2wm4vp6e4o46crnk0u92.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2wm4vp6e4o46crnk0u92.png" alt="not" width="800" height="390"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select + Add snapshot. The comment is optional. Select OK&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F512vmgrw67xq4v3jw5qu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F512vmgrw67xq4v3jw5qu.png" alt="mon" width="800" height="265"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select your snapshot and verify your file directory and uploaded file are included&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzt78ajk4hfjrzeu5g370.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzt78ajk4hfjrzeu5g370.png" alt="jo" width="800" height="237"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnn9bs2pthtxxnaq01sny.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnn9bs2pthtxxnaq01sny.png" alt="jhu" width="800" height="209"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fclj7195z9gan29izuwis.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fclj7195z9gan29izuwis.png" alt="dat" width="800" height="221"&gt;&lt;/a&gt;&lt;br&gt;
4.2. &lt;strong&gt;Practice using snapshots to restore a file&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;Return to your file share&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizbbn5f2vyv4rsseoqpj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizbbn5f2vyv4rsseoqpj.png" alt="des" width="800" height="244"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Browse to your file directory&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5dprjf9061gukd0pcsqd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5dprjf9061gukd0pcsqd.png" alt="pam" width="800" height="248"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Locate your uploaded file and in the Properties pane select Delete&lt;/strong&gt;. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdbtq7hnzxiglnrktt6d1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdbtq7hnzxiglnrktt6d1.png" alt="hoo" width="800" height="349"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Yes to confirm the deletion&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnpjg1g8gk4eca9dgiu8s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnpjg1g8gk4eca9dgiu8s.png" alt="done" width="800" height="308"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fmjb2sn0ro5o63pjvpa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0fmjb2sn0ro5o63pjvpa.png" alt="set" width="800" height="223"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select the Snapshots blade and then select your snapshot&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bnoejp8rqf35emjfpjr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bnoejp8rqf35emjfpjr.png" alt="kap" width="800" height="299"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Navigate to the file you want to restore&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd7un213anuvrle1f8hws.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd7un213anuvrle1f8hws.png" alt="boy" width="800" height="210"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select the file and then select Restore&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgbubobseo4zziam93lut.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgbubobseo4zziam93lut.png" alt="do" width="800" height="313"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Provide a Restored file name&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6fykm972mgmckxfo0eyu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6fykm972mgmckxfo0eyu.png" alt="bat" width="800" height="321"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Verify your file directory has the restored file&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Futzips5cjr8cuh36kij4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Futzips5cjr8cuh36kij4.png" alt="Der" width="800" height="284"&gt;&lt;/a&gt;&lt;br&gt;
5.0. &lt;strong&gt;Configure restricting storage access to selected virtual networks&lt;/strong&gt; &lt;br&gt;
The tasks in this section require a virtual network with the subnet. In a production environment, these resources would already be created. &lt;br&gt;
5.1. &lt;strong&gt;Search for and select Virtual networks&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4495kp2qw2h4z983gv5a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4495kp2qw2h4z983gv5a.png" alt="dem" width="800" height="277"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Create. Select your resource group. and give the virtual network a name&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F63sb5w46fwsphljhadff.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F63sb5w46fwsphljhadff.png" alt="pot" width="800" height="363"&gt;&lt;/a&gt;&lt;br&gt;
Take the defaults for other parameters, select Review + Create, and then Create.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxse88rpe7mjr29s0sey.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxse88rpe7mjr29s0sey.png" alt="daa" width="800" height="700"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g95bhp57q18dd6l5mh6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g95bhp57q18dd6l5mh6.png" alt="bat" width="800" height="929"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Wait for the resource to deploy and select Go to the resource&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8yt7fnp64mfgknbq267.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8yt7fnp64mfgknbq267.png" alt="got" width="800" height="378"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;In the Settings section, select the Subnets blade&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4gooho618yp9dw3nu6l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4gooho618yp9dw3nu6l.png" alt="nag" width="800" height="423"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select the default subnet&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9i7pwk2i0tmztqoiakvl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9i7pwk2i0tmztqoiakvl.png" alt="mok" width="800" height="322"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;In the Service endpoints section choose Microsoft.Storage in the Services drop-down. Save your changes&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6n5x0pdv1lebrqpmkbir.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6n5x0pdv1lebrqpmkbir.png" alt="nab" width="800" height="389"&gt;&lt;/a&gt;&lt;br&gt;
5.2. The storage account should only be accessed from the virtual network you just created.&lt;br&gt;
5.1. &lt;strong&gt;Return to your files storage account&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9k7jsoq6w5per68yehjr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9k7jsoq6w5per68yehjr.png" alt="hot" width="800" height="379"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;In the Security + networking section, select the Networking blade&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwx1mo6wwsbj2hdu66g7c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwx1mo6wwsbj2hdu66g7c.png" alt="best" width="800" height="372"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Change the Public network access to Enabled from selected virtual networks and IP addresses&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fci9itz01oud59889trdc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fci9itz01oud59889trdc.png" alt="bau" width="800" height="267"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;In the Virtual Networks section, select Add existing virtual network&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7to12avu52zu64vf99ks.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7to12avu52zu64vf99ks.png" alt="bai" width="800" height="225"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select your virtual network and subnet, and select Add.&lt;br&gt;
Be sure to Save your changes&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1g71u415t7q9kyku1zr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1g71u415t7q9kyku1zr.png" alt="got" width="800" height="389"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5yb0g1h9bp7oztpaze6i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5yb0g1h9bp7oztpaze6i.png" alt="gat" width="800" height="384"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select the Storage browser and navigate to your file share&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fea0y42tllcx30jqauqih.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fea0y42tllcx30jqauqih.png" alt="hul" width="800" height="391"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Verify the message is not authorized to perform this operation. You are not connecting from the virtual network&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6uejuwgay6lxfrr7hb7s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6uejuwgay6lxfrr7hb7s.png" alt="goo" width="800" height="195"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3ukfgr14vccf08zzdtb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3ukfgr14vccf08zzdtb.png" alt="got" width="800" height="356"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Conclusion&lt;/strong&gt;. &lt;br&gt;
By completing this guide, you’ve successfully set up shared file storage on the Azure Portal to streamline collaboration across company offices. This scalable and secure solution ensures seamless access to shared resources, enhancing productivity and teamwork. Regular monitoring and updates will help you maintain an efficient and reliable file-sharing environment for your organization.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>devops</category>
      <category>aws</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Step-by-step guide on providing private storage for internal company documents on Azure Portal.</title>
      <dc:creator>Nelson Akpa</dc:creator>
      <pubDate>Mon, 07 Apr 2025 02:44:29 +0000</pubDate>
      <link>https://dev.to/nelson_akpa01/step-by-step-guide-on-providing-private-storage-for-internal-company-documents-on-azure-portal-4854</link>
      <guid>https://dev.to/nelson_akpa01/step-by-step-guide-on-providing-private-storage-for-internal-company-documents-on-azure-portal-4854</guid>
      <description>&lt;p&gt;&lt;strong&gt;Table of contents&lt;/strong&gt;. &lt;br&gt;
&lt;strong&gt;1&lt;/strong&gt;. Introduction.&lt;br&gt;
&lt;strong&gt;2&lt;/strong&gt;. Create a storage account for the company's private documents.&lt;br&gt;
&lt;strong&gt;3&lt;/strong&gt;. Configure redundancy for the storage account.&lt;br&gt;
&lt;strong&gt;4&lt;/strong&gt;. Create a private storage container for the corporate data&lt;br&gt;
&lt;strong&gt;5&lt;/strong&gt;. Configure a shared access signature so partners have restricted access to a file.&lt;br&gt;
&lt;strong&gt;6&lt;/strong&gt;. Configure storage access tiers and content replication.&lt;br&gt;
&lt;strong&gt;7&lt;/strong&gt;. Back up the public website storage.&lt;br&gt;
&lt;strong&gt;8&lt;/strong&gt;. Implement lifecycle management to move content to the cool tier.&lt;br&gt;
&lt;strong&gt;9&lt;/strong&gt;. Conclusion. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;. &lt;br&gt;
Setting up private storage for internal company documents on the Azure Portal is a vital step to ensure data &lt;strong&gt;security&lt;/strong&gt;, &lt;strong&gt;accessibility&lt;/strong&gt;, and &lt;strong&gt;organization&lt;/strong&gt;. This guide offers a &lt;strong&gt;clear&lt;/strong&gt;, step-by-step approach to creating and configuring storage tailored to your organization's needs. It enables secure document management in a scalable cloud environment, whether you're safeguarding sensitive data or optimizing collaboration. This guide simplifies the process to support your goals efficiently.&lt;/p&gt;

&lt;p&gt;Before you proceed, search this link (&lt;a href="https://learn.microsoft.com/en-us/training/modules/guided-project-azure-files-azure-blobs/" rel="noopener noreferrer"&gt;https://learn.microsoft.com/en-us/training/modules/guided-project-azure-files-azure-blobs/&lt;/a&gt;) and follow through for Azure cloud projects.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2y83pfmsntdea0sw6mvz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2y83pfmsntdea0sw6mvz.png" alt="der" width="800" height="613"&gt;&lt;/a&gt; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6w80qh11i7ckym054b71.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6w80qh11i7ckym054b71.png" alt="gae" width="800" height="582"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frd8xeekkowoj4q9in4jy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frd8xeekkowoj4q9in4jy.png" alt="bre" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.0&lt;/strong&gt;. &lt;strong&gt;Create a storage account for the company's private documents&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;2.1&lt;/strong&gt;. In the &lt;strong&gt;portal&lt;/strong&gt;, search for and select &lt;strong&gt;Storage accounts&lt;/strong&gt;.&lt;br&gt;
Select &lt;strong&gt;+ Create&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiq3ibgvg86s1ix5oy11q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiq3ibgvg86s1ix5oy11q.png" alt="sdo" width="800" height="516"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.2&lt;/strong&gt;. &lt;strong&gt;Select the Resource group&lt;/strong&gt; created in the previous lab*&lt;em&gt;.&lt;br&gt;
If the first storage exercise's resource group was deleted after use, you'll have to recreate it.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpeeffq12uzrdsnewc203.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpeeffq12uzrdsnewc203.png" alt="var" width="800" height="417"&gt;&lt;/a&gt;&lt;br&gt;
**2.3&lt;/em&gt;&lt;em&gt;. Set the **Storage account&lt;/em&gt;* name to &lt;strong&gt;private&lt;/strong&gt;. To ensure its uniqueness, add an &lt;strong&gt;identifier&lt;/strong&gt; to the name. leave other settings as default.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxaow707yhmohas5g3iyw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxaow707yhmohas5g3iyw.png" alt="ata" width="800" height="331"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.4&lt;/strong&gt;. Select &lt;strong&gt;Review&lt;/strong&gt;, and then &lt;strong&gt;Create&lt;/strong&gt; the &lt;strong&gt;storage account&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7qmgjcoor31942dh63i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr7qmgjcoor31942dh63i.png" alt="adet" width="800" height="567"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;2.5&lt;/strong&gt;. Wait for the &lt;strong&gt;storage account&lt;/strong&gt; to &lt;strong&gt;deploy&lt;/strong&gt;, and then select Go to the resource.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp6cxo01ldwytpdfmq6o2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp6cxo01ldwytpdfmq6o2.png" alt="cam" width="800" height="487"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgpkeeua8419ng95dz08g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgpkeeua8419ng95dz08g.png" alt="det" width="800" height="377"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;3.0&lt;/strong&gt;. Configure the appropriate level of redundancy.&lt;br&gt;
&lt;strong&gt;3.1&lt;/strong&gt;. In the &lt;strong&gt;storage account&lt;/strong&gt;, in the &lt;strong&gt;Data management&lt;/strong&gt; section, select the &lt;strong&gt;Redundancy blade&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frou3ak49urbobv8man3s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frou3ak49urbobv8man3s.png" alt="dam" width="800" height="482"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;3.2&lt;/strong&gt;. Ensure &lt;strong&gt;Geo-redundant storage&lt;/strong&gt; &lt;strong&gt;(GRS)&lt;/strong&gt; is selected and refresh the page.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fup4g2dlu6r4xbzubodua.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fup4g2dlu6r4xbzubodua.png" alt="get" width="800" height="386"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;3.3&lt;/strong&gt;. Review the &lt;strong&gt;primary&lt;/strong&gt; and &lt;strong&gt;secondary&lt;/strong&gt; location information and save your changes.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F72bi8bi0dirqap1uqxuk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F72bi8bi0dirqap1uqxuk.png" alt="dam" width="800" height="455"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;4.0&lt;/strong&gt;. &lt;strong&gt;Create a private storage container for the corporate data&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;4.1&lt;/strong&gt;. In the &lt;strong&gt;storage account&lt;/strong&gt;, in the &lt;strong&gt;Data storage&lt;/strong&gt; section, select the &lt;strong&gt;Containers blade&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frg1zdyx5q7t8z4lsy629.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frg1zdyx5q7t8z4lsy629.png" alt="get" width="800" height="453"&gt;&lt;/a&gt;&lt;br&gt;
Select &lt;strong&gt;+ Container&lt;/strong&gt; and ensure the name of the container is private.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ucqpy05fpnprbjksld7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ucqpy05fpnprbjksld7.png" alt="pot" width="800" height="368"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffcgs9lokx09gplc3hnxu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffcgs9lokx09gplc3hnxu.png" alt="tok" width="800" height="424"&gt;&lt;/a&gt;&lt;br&gt;
Ensure the Public access level is &lt;strong&gt;Private&lt;/strong&gt; (no anonymous access).&lt;br&gt;
As you have time, review the Advanced settings, but take the defaults and select &lt;strong&gt;Create&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqglu6bz83636b0qi4zfd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqglu6bz83636b0qi4zfd.png" alt="gof" width="800" height="393"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;4.2&lt;/strong&gt;. For &lt;strong&gt;testing&lt;/strong&gt;, upload a file to the &lt;strong&gt;private container&lt;/strong&gt;. The type of file doesn’t matter. A small image or text file is a good choice. Test to ensure the file isn’t &lt;strong&gt;publically accessible&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;Select the container and select Upload&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flox0cvhznv5stdhgaah7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flox0cvhznv5stdhgaah7.png" alt="Der" width="800" height="386"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftis0h2x61yhxv9e20f78.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftis0h2x61yhxv9e20f78.png" alt="up" width="800" height="336"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Browse to files and select a file&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs172tzfzbu9rltzx0q3b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs172tzfzbu9rltzx0q3b.png" alt="sect" width="800" height="329"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Upload the file&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F121afd0a6o3a3dd6umuv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F121afd0a6o3a3dd6umuv.png" alt="dam" width="800" height="254"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select the uploaded file&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp6muktkzij0p79p80412.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp6muktkzij0p79p80412.png" alt="don" width="800" height="399"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;On the Overview tab, copy the URL&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy8jemk8m04g92gc7d42y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy8jemk8m04g92gc7d42y.png" alt="copied" width="800" height="402"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Paste the URL into a new browser tab&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftimoaq63w0972jnb8jr5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftimoaq63w0972jnb8jr5.png" alt="Done" width="800" height="415"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Verify the file doesn’t display and you receive an error&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85i8erpoi2593mbh0grr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85i8erpoi2593mbh0grr.png" alt="Gos" width="800" height="327"&gt;&lt;/a&gt;&lt;br&gt;
5.0. An external partner requires &lt;strong&gt;read-and-write&lt;/strong&gt; access to the file for at least the next 24 hours. &lt;strong&gt;Configure and test a shared access signature (SAS)&lt;/strong&gt;.&lt;br&gt;
5.1. Select your uploaded blob file and move to the Generate SAS tab.&lt;br&gt;
In the Permissions drop-down, ensure the partner has only Read permissions.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8in14l0im66kduvv85aq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8in14l0im66kduvv85aq.png" alt="sas" width="800" height="395"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6figsm9x9vvqammuzf44.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6figsm9x9vvqammuzf44.png" alt="check" width="800" height="394"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Generate SAS token and URL&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj4xlifbdr587uzun1p4r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj4xlifbdr587uzun1p4r.png" alt="done" width="800" height="725"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo3bj7nxnyqe7kwvuhci5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo3bj7nxnyqe7kwvuhci5.png" alt="gad" width="800" height="393"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Copy the Blob SAS URL to a new browser tab&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpwmsgtnmthv3i95404od.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpwmsgtnmthv3i95404od.png" alt="good" width="800" height="336"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Verify you can access the file&lt;/strong&gt;. If you have uploaded an image file it will display in the browser. Other file types will be downloaded.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5z7e0lbhnxuuzkbrlwgv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5z7e0lbhnxuuzkbrlwgv.png" alt="ver" width="800" height="500"&gt;&lt;/a&gt;.&lt;br&gt;
6.0. &lt;strong&gt;Configure storage access tiers and content replication&lt;/strong&gt;&lt;br&gt;
6.1. &lt;strong&gt;To save on costs, after 30 days, move blobs from the hot tier to the cool tier&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;Return to the storage account&lt;/strong&gt;.&lt;br&gt;
In the &lt;strong&gt;Overview&lt;/strong&gt; section, notice the Default access tier is set to Hot.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2jckb58dxx1fqm1cbah1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2jckb58dxx1fqm1cbah1.png" alt="gut" width="800" height="395"&gt;&lt;/a&gt;&lt;br&gt;
In the &lt;strong&gt;Data Management section&lt;/strong&gt;, select the Lifecycle Management Blade.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8uw7dz8l3qsoq1q8rcgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8uw7dz8l3qsoq1q8rcgg.png" alt="blade" width="800" height="483"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Add rule&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6y2orctzvfa4oxg5m3kb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6y2orctzvfa4oxg5m3kb.png" alt="sed" width="800" height="468"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Set the Rule name to move to cool&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgqvjjq5gynsiklx1140.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgqvjjq5gynsiklx1140.png" alt="cool" width="800" height="243"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Set the Rule scope to Apply the rule to all blobs in the storage account&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0k6f8se6ta73zjd1w1qt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0k6f8se6ta73zjd1w1qt.png" alt="get" width="800" height="94"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Next&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1onmfta9x5kciep0vg7q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1onmfta9x5kciep0vg7q.png" alt="bob" width="800" height="668"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Ensure the 'Last modified' is selected&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjswdidicn0znnagg3mp5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjswdidicn0znnagg3mp5.png" alt="mod" width="800" height="554"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Set More than (days ago) to 30&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiuijrvwkjqrw2c01mkl6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiuijrvwkjqrw2c01mkl6.png" alt="base" width="800" height="603"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;In the Then drop-down select Move to cool storage&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpw7kri2mekehpzqrb96d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpw7kri2mekehpzqrb96d.png" alt="good" width="800" height="663"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwrh3iduyqo9ntvdpmqzp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwrh3iduyqo9ntvdpmqzp.png" alt="Dra" width="800" height="656"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;As you have time, review other lifecycle options in the drop-down.&lt;br&gt;
Add the rule&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpzpouiiuzhgud93823c1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpzpouiiuzhgud93823c1.png" alt="good" width="800" height="458"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8tx2qrecmu7zn9nxk441.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8tx2qrecmu7zn9nxk441.png" alt="gat" width="800" height="542"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv9ozl0ghbc23x8bmhrgn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv9ozl0ghbc23x8bmhrgn.png" alt="bat" width="800" height="408"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8h37ya3k916hsgcb96v0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8h37ya3k916hsgcb96v0.png" alt="Dar" width="800" height="364"&gt;&lt;/a&gt;&lt;br&gt;
7.0 &lt;strong&gt;The public website files need to be backed up to another storage account.&lt;/strong&gt;&lt;br&gt;
7.1. In your &lt;strong&gt;storage account&lt;/strong&gt;, create a new container called backup. Use the default values.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbkzk7j2rm208ndx93fl6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbkzk7j2rm208ndx93fl6.png" alt="gou" width="800" height="406"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1622r5ebhlujkmzo9l2i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1622r5ebhlujkmzo9l2i.png" alt="det" width="800" height="386"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiwfobo358xhuc1m0bmf4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiwfobo358xhuc1m0bmf4.png" alt="von" width="800" height="341"&gt;&lt;/a&gt;&lt;br&gt;
7.2. Navigate to your &lt;strong&gt;publicwebsite storage account&lt;/strong&gt;. This storage account was created in the previous exercise.&lt;br&gt;
In the &lt;strong&gt;Data management&lt;/strong&gt; section, select the &lt;strong&gt;Object replication blade&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk57i2xo3ppu5ro7bbdn5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk57i2xo3ppu5ro7bbdn5.png" alt="pub" width="800" height="378"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Select Create replication rules&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fguryf78ia4ity6167ihv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fguryf78ia4ity6167ihv.png" alt="dat" width="800" height="462"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Set the Destination storage account to the private storage account&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgfrhgyl95obvkbm95zh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgfrhgyl95obvkbm95zh.png" alt="clk" width="800" height="410"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Set the Source container to public and the Destination container to backup.&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1a8uvjg1we2qkie55icc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1a8uvjg1we2qkie55icc.png" alt="hot" width="800" height="443"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Create the replication rule&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftgl317dy3lps7e017zlz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftgl317dy3lps7e017zlz.png" alt="vok" width="800" height="478"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnvujt2r82krplqffn94n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnvujt2r82krplqffn94n.png" alt="get" width="800" height="403"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Optionally, upload a file to the public container&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjxo6gd9s8ssyaowuozrc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjxo6gd9s8ssyaowuozrc.png" alt="done" width="800" height="247"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkmiqrmpcsiuw6ppn20gx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkmiqrmpcsiuw6ppn20gx.png" alt="vet" width="800" height="217"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Return to the private storage account and refresh the backup container&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjugpzk2xamiy7aazz0pi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjugpzk2xamiy7aazz0pi.png" alt="done" width="800" height="360"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ajcj3kd41czm8hcp5vo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ajcj3kd41czm8hcp5vo.png" alt="bas" width="800" height="269"&gt;&lt;/a&gt;&lt;br&gt;
8.0. &lt;strong&gt;Implement lifecycle management to move content to the cool tier&lt;/strong&gt;.&lt;br&gt;
8.1. &lt;strong&gt;Navigate to your storage account in the Azure portal and enable access time tracking&lt;/strong&gt;. &lt;br&gt;
In the &lt;strong&gt;Data Management section&lt;/strong&gt; of the menu, select Lifecycle Management.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F43n8ewpmuw9f042cssjv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F43n8ewpmuw9f042cssjv.png" alt="great" width="800" height="481"&gt;&lt;/a&gt;&lt;br&gt;
Within the &lt;strong&gt;Lifecycle Management settings&lt;/strong&gt;, look for the option to enable '&lt;strong&gt;Access Time Tracking&lt;/strong&gt;' and check the corresponding &lt;strong&gt;box&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4wy9zahcjj6q4lujpat.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4wy9zahcjj6q4lujpat.png" alt="ba" width="800" height="381"&gt;&lt;/a&gt;&lt;br&gt;
8.2. &lt;strong&gt;Create a Lifecycle Management Policy&lt;/strong&gt;:&lt;br&gt;
Go to the &lt;strong&gt;Lifecycle Management&lt;/strong&gt; section in your storage account, add a new rule specifying conditions, such as the number of days since the blob was created or last modified.&lt;br&gt;&lt;br&gt;
Define the action to move blobs to the cool tier when the conditions are met.(&lt;strong&gt;refer to 6.1 of this article&lt;/strong&gt;)&lt;br&gt;
8.3 &lt;strong&gt;Apply Filters&lt;/strong&gt;: Use blob prefixes or tags to target specific blobs or containers for the policy.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F81ykznc5f1mqpaw0l91y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F81ykznc5f1mqpaw0l91y.png" alt="gem" width="800" height="627"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpepplv62pzt5uy9f8hdb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpepplv62pzt5uy9f8hdb.png" alt="ver" width="800" height="626"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Activate the Policy&lt;/strong&gt;: Ensure the rule is enabled and wait for it to execute automatically based on the defined conditions.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffx6dojezcnljaq1vjk8h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffx6dojezcnljaq1vjk8h.png" alt="gom" width="800" height="337"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Conclusion&lt;/strong&gt; &lt;br&gt;
By following this guide, you’ve successfully set up private storage for internal company documents on the Azure Portal. This ensures your organization’s sensitive data is secure, accessible, and well-organized. With scalable and reliable storage solutions in place, your team can focus on collaboration and innovation while maintaining robust data protection.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Step-by-step guide on how to create a Windows 11 VM that is highly available on the Azure portal.</title>
      <dc:creator>Nelson Akpa</dc:creator>
      <pubDate>Sat, 05 Apr 2025 23:10:58 +0000</pubDate>
      <link>https://dev.to/nelson_akpa01/step-by-step-guide-on-how-to-create-a-windows-11-vm-that-is-highly-available-on-the-azure-portal-m73</link>
      <guid>https://dev.to/nelson_akpa01/step-by-step-guide-on-how-to-create-a-windows-11-vm-that-is-highly-available-on-the-azure-portal-m73</guid>
      <description>&lt;p&gt;Table of contents&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Create a Windows 11 VM that's highly available. &lt;/li&gt;
&lt;li&gt;Conclusion. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
Creating a &lt;strong&gt;highly available Windows 11 virtual machine (VM)&lt;/strong&gt; on the &lt;strong&gt;Azure portal&lt;/strong&gt; is essential for ensuring &lt;strong&gt;reliability&lt;/strong&gt; and &lt;strong&gt;continuous access&lt;/strong&gt; to your applications. Creating a &lt;strong&gt;highly available Windows 11 virtual machine (VM)&lt;/strong&gt; implies that the setup is designed to &lt;strong&gt;minimize&lt;/strong&gt; downtime and ensure &lt;strong&gt;reliability&lt;/strong&gt;, even in the event of hardware or software failures. This typically involves leveraging features like availability zones (placing VMs in different physical locations/zones within a region to prevent a single point of failure), load balancing, and redundant resources. It ensures that the VM can continuously provide its intended services or applications, making it ideal for critical workloads where uninterrupted accessibility is essential. &lt;br&gt;
This &lt;strong&gt;step-by-step guide&lt;/strong&gt; walks you through setting up and configuring a Windows 11 VM with features that enhance availability and fault tolerance. Whether for &lt;strong&gt;development&lt;/strong&gt;, &lt;strong&gt;testing&lt;/strong&gt;, or &lt;strong&gt;operational use&lt;/strong&gt;, this guide equips you with the tools to build a resilient &lt;strong&gt;cloud environment&lt;/strong&gt; tailored to your needs.&lt;/p&gt;

&lt;p&gt;2.0. &lt;strong&gt;Create a Windows 11 VM that's highly available&lt;/strong&gt;. &lt;br&gt;
2.1. Login to the &lt;strong&gt;Azure portal&lt;/strong&gt;, navigate to the &lt;strong&gt;Virtual machine&lt;/strong&gt;, and select &lt;strong&gt;Create&lt;/strong&gt;. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2wdulylspggu95xjluq9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2wdulylspggu95xjluq9.png" alt="Gad" width="800" height="505"&gt;&lt;/a&gt;&lt;br&gt;
2.2 Fill in the &lt;strong&gt;project details&lt;/strong&gt; and create a new resource group.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdus0oxne1oisxqe0tq0z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdus0oxne1oisxqe0tq0z.png" alt="sed" width="800" height="382"&gt;&lt;/a&gt;&lt;br&gt;
2.3. Fill in the &lt;strong&gt;instance details&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frj7vsg418h7zsxc2d9oy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frj7vsg418h7zsxc2d9oy.png" alt="Gad" width="800" height="331"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1mfw772mo5cix1l8kr46.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1mfw772mo5cix1l8kr46.png" alt="Gem" width="800" height="315"&gt;&lt;/a&gt;&lt;br&gt;
2.4. Navigate to the &lt;strong&gt;administrator&lt;/strong&gt; section, and create a preferred username, and password. Also, choose the RDP(3389) inbound port.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhnwc49gpebgrwsdrqz4m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhnwc49gpebgrwsdrqz4m.png" alt="gart" width="800" height="334"&gt;&lt;/a&gt;&lt;br&gt;
Ensure Licensing is checked.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9j11ce05gkovawjr4hv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9j11ce05gkovawjr4hv.png" alt="Awe" width="800" height="172"&gt;&lt;/a&gt;&lt;br&gt;
2.5. Go to the &lt;strong&gt;Networking section&lt;/strong&gt; and create a &lt;strong&gt;load balancer&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzp49ofb6qf3br2uvpsry.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzp49ofb6qf3br2uvpsry.png" alt="LB" width="800" height="507"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F97pjs55uma7qo7haupa2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F97pjs55uma7qo7haupa2.png" alt="Check" width="800" height="239"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fapuqk1384hazc8goc1de.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fapuqk1384hazc8goc1de.png" alt="Car" width="800" height="407"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq02w49ncdyo1c6814yjz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq02w49ncdyo1c6814yjz.png" alt="Saw" width="800" height="118"&gt;&lt;/a&gt;&lt;br&gt;
2.6. Navigate to the &lt;strong&gt;monitoring&lt;/strong&gt; section and disable diagnostics.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffyf0mrbgmrzoa7yw3qxh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffyf0mrbgmrzoa7yw3qxh.png" alt="Ver" width="800" height="491"&gt;&lt;/a&gt;&lt;br&gt;
2.7. Go to the &lt;strong&gt;Tag&lt;/strong&gt; section, and add the &lt;strong&gt;name&lt;/strong&gt; and &lt;strong&gt;value&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7qepp1iursov5ffm3hqp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7qepp1iursov5ffm3hqp.png" alt="Sas" width="800" height="459"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Review and Create&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fegqbs8q1plf523j8fgh1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fegqbs8q1plf523j8fgh1.png" alt="BAF" width="800" height="511"&gt;&lt;/a&gt;&lt;br&gt;
2.8. Click on &lt;strong&gt;Create&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04xk0vlczdhjs4xzmb4d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04xk0vlczdhjs4xzmb4d.png" alt="Vao" width="800" height="504"&gt;&lt;/a&gt;&lt;br&gt;
2.9. Click on &lt;strong&gt;Go to Resource&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0up6vw7np6t81bn3gv3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0up6vw7np6t81bn3gv3.png" alt="dae" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
2.10. Click on public IP address to extend &lt;strong&gt;Idle time out&lt;/strong&gt; and &lt;strong&gt;save&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fik72038muoc6ghtt46v8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fik72038muoc6ghtt46v8.png" alt="Det" width="800" height="388"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbnpr1qc46mmsyx36039f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbnpr1qc46mmsyx36039f.png" alt="get" width="800" height="392"&gt;&lt;/a&gt;&lt;br&gt;
2.11. Click on &lt;strong&gt;Connect&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qo6dnlgtb43yvnoo8na.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qo6dnlgtb43yvnoo8na.png" alt="Det" width="800" height="406"&gt;&lt;/a&gt;&lt;br&gt;
Click on &lt;strong&gt;Select&lt;/strong&gt; to &lt;strong&gt;Configure&lt;/strong&gt; RDP file&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy803fng0omf61702fqbk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy803fng0omf61702fqbk.png" alt="Bles" width="800" height="390"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Download the RDP file&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftruxskwfikv3gq7m74nm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftruxskwfikv3gq7m74nm.png" alt="Dan" width="800" height="389"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flt2ukavo378awoz2rhuk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flt2ukavo378awoz2rhuk.png" alt="dem" width="800" height="469"&gt;&lt;/a&gt;&lt;br&gt;
2.12. Install &lt;strong&gt;Microsoft remote desktop&lt;/strong&gt; if not already installed and then open the downloaded Windows 11 RDP file. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvlc7i20hfclu0rxzva9u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvlc7i20hfclu0rxzva9u.png" alt="Der" width="800" height="504"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv0o1vvpeyw93swlz1e0n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv0o1vvpeyw93swlz1e0n.png" alt="get" width="800" height="456"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fae11pxkkpp1ji6mimbw4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fae11pxkkpp1ji6mimbw4.png" alt="gyu" width="800" height="499"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft4f6orh8o79fskbg7t10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft4f6orh8o79fskbg7t10.png" alt="gui" width="800" height="525"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvgm8ime3it90ek0280pd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvgm8ime3it90ek0280pd.png" alt="cet" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsyhgkb1cd1b02vafmtd8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsyhgkb1cd1b02vafmtd8.png" alt="bro" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
By completing this guide, you've successfully created a &lt;strong&gt;highly available Windows 11 virtual machine&lt;/strong&gt; on the &lt;strong&gt;Azure portal&lt;/strong&gt;. This setup ensures &lt;strong&gt;reliability&lt;/strong&gt;, &lt;strong&gt;scalability&lt;/strong&gt;, and &lt;strong&gt;continuous access to your applications&lt;/strong&gt;, even in unexpected disruptions. Regular &lt;strong&gt;maintenance&lt;/strong&gt; and &lt;strong&gt;monitoring&lt;/strong&gt; will help you optimize performance and keep your cloud environment resilient to evolving challenges.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>cloud</category>
      <category>beginners</category>
      <category>devops</category>
    </item>
    <item>
      <title>Step-by-step guide on how to provide storage for the public website on the Azure portal.</title>
      <dc:creator>Nelson Akpa</dc:creator>
      <pubDate>Fri, 04 Apr 2025 07:59:30 +0000</pubDate>
      <link>https://dev.to/nelson_akpa01/step-by-step-guide-on-how-to-provide-storage-for-the-public-website-on-the-azure-portal-25fp</link>
      <guid>https://dev.to/nelson_akpa01/step-by-step-guide-on-how-to-provide-storage-for-the-public-website-on-the-azure-portal-25fp</guid>
      <description>&lt;p&gt;Table of contents&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction.&lt;/li&gt;
&lt;li&gt;Create a storage account with high availability.&lt;/li&gt;
&lt;li&gt;Create a blob storage container with anonymous read access.&lt;/li&gt;
&lt;li&gt;Practice uploading files and testing access.&lt;/li&gt;
&lt;li&gt;Configure soft delete&lt;/li&gt;
&lt;li&gt;Configure blob versioning.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
Providing &lt;strong&gt;storage&lt;/strong&gt; for a public &lt;strong&gt;website&lt;/strong&gt; on the &lt;strong&gt;Azure portal&lt;/strong&gt; is a straightforward and efficient way to manage and deliver content to a broad audience. This guide will walk you through setting up and configuring &lt;strong&gt;Azure storage&lt;/strong&gt; to ensure your website is scalable, secure, and optimized for performance. Whether you're hosting static files or dynamic content, this step-by-step guide simplifies the process and equips you with the tools to make your website accessible and reliable.&lt;br&gt;
First, go to your browser and paste the link &lt;a href="https://learn.microsoft.com/en-us/training/modules/guided-project-azure-files-azure-blobs/" rel="noopener noreferrer"&gt;https://learn.microsoft.com/en-us/training/modules/guided-project-azure-files-azure-blobs/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn71y6e327gcxf2jcaexg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn71y6e327gcxf2jcaexg.png" alt="Storage" width="800" height="518"&gt;&lt;/a&gt;&lt;br&gt;
Click on the marked project &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F988e1ll5eoehcakk1gus.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F988e1ll5eoehcakk1gus.png" alt="Go" width="800" height="513"&gt;&lt;/a&gt;&lt;br&gt;
2.0. &lt;strong&gt;Create a **storage account&lt;/strong&gt; with high availability.&lt;br&gt;
2.1. In the &lt;strong&gt;Azure portal&lt;/strong&gt;, search for and select &lt;strong&gt;storage accounts&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1d2zztwy88kr3dj3y5s3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1d2zztwy88kr3dj3y5s3.png" alt="Ape" width="800" height="505"&gt;&lt;/a&gt;&lt;br&gt;
2.2. Fill up the &lt;strong&gt;project details&lt;/strong&gt;. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqbgty4hzo8gc45xnqh3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqbgty4hzo8gc45xnqh3.png" alt="got" width="800" height="349"&gt;&lt;/a&gt;&lt;br&gt;
2.3. Fill in the &lt;strong&gt;instance details&lt;/strong&gt; set the storage account name to &lt;strong&gt;publicwebsite10245&lt;/strong&gt; and take the defaults for other settings&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbh9t80aq90fqqqi4zn59.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbh9t80aq90fqqqi4zn59.png" alt="ID" width="800" height="267"&gt;&lt;/a&gt;&lt;br&gt;
2.4. Select &lt;strong&gt;Review and then Create&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx1hshr2400ggsgzvgue6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx1hshr2400ggsgzvgue6.png" alt="DG" width="800" height="523"&gt;&lt;/a&gt;&lt;br&gt;
Wait for the &lt;strong&gt;storage account&lt;/strong&gt; to &lt;strong&gt;deploy&lt;/strong&gt;, and then select Go to &lt;strong&gt;the resource&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8fdyeg6cvho4r158y75p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8fdyeg6cvho4r158y75p.png" alt="AS" width="800" height="526"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb94l7zs6f9rxjifcq0k3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb94l7zs6f9rxjifcq0k3.png" alt="AW" width="800" height="515"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxlye4s5tviq6mpf7xav.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxlye4s5tviq6mpf7xav.png" alt="IDE" width="800" height="508"&gt;&lt;/a&gt;&lt;br&gt;
In the &lt;strong&gt;storage account&lt;/strong&gt;, in the &lt;strong&gt;Data management&lt;/strong&gt; section, select the Redundancy blade.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1hyhitevfsfzk86cpb6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1hyhitevfsfzk86cpb6.png" alt="GOM" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
Ensure &lt;strong&gt;Read-access&lt;/strong&gt; Geo-redundant storage is selected and review the primary and secondary location information.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv56pcpy44hmtmbdmxvn5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv56pcpy44hmtmbdmxvn5.png" alt="Imad" width="800" height="510"&gt;&lt;/a&gt;&lt;br&gt;
In the &lt;strong&gt;storage account&lt;/strong&gt;, in the Settings section, select the &lt;strong&gt;Configuration Blade&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsok4qqqi2anvgnzgcq1s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsok4qqqi2anvgnzgcq1s.png" alt="ADA" width="800" height="497"&gt;&lt;/a&gt;&lt;br&gt;
Ensure the &lt;strong&gt;Allow blob anonymous access&lt;/strong&gt; setting is Enabled.&lt;br&gt;
Be sure to Save your changes. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd2dgk2s6yxh59rg85khn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd2dgk2s6yxh59rg85khn.png" alt="Jad" width="800" height="497"&gt;&lt;/a&gt;&lt;br&gt;
3.0. Create a &lt;strong&gt;blob storage container&lt;/strong&gt; with anonymous read access.&lt;br&gt;
3.1. In your storage account, in the Data storage section, select the Containers blade.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fehfgbavifq07jnl70psr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fehfgbavifq07jnl70psr.png" alt="ASA" width="800" height="482"&gt;&lt;/a&gt;&lt;br&gt;
Select &lt;strong&gt;+Container&lt;/strong&gt; and ensure the name of the &lt;strong&gt;container&lt;/strong&gt; is &lt;strong&gt;public&lt;/strong&gt; then select &lt;strong&gt;Create&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flkeun634gfp3dei2axr1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flkeun634gfp3dei2axr1.png" alt="mad" width="800" height="454"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1hsm1zylwo77dt1l8edt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1hsm1zylwo77dt1l8edt.png" alt="Gam" width="800" height="271"&gt;&lt;/a&gt;&lt;br&gt;
3.2. &lt;strong&gt;Select your public container&lt;/strong&gt;.&lt;br&gt;
On the Overview blade, select Change Access Level.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pu0gf14pbzrn8w9rfrb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pu0gf14pbzrn8w9rfrb.png" alt="Bam" width="800" height="384"&gt;&lt;/a&gt;&lt;br&gt;
Ensure the &lt;strong&gt;Public access&lt;/strong&gt; level is Blob (anonymous read access for blobs only).&lt;br&gt;
Select OK.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi159odfsmohdajw3417p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi159odfsmohdajw3417p.png" alt="Ima" width="800" height="352"&gt;&lt;/a&gt;&lt;br&gt;
4.0. Practice uploading files and testing access.&lt;br&gt;
4.1. Ensure you are viewing your container.&lt;br&gt;
Select &lt;strong&gt;Upload&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F28yyvko75gvnsja3n35z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F28yyvko75gvnsja3n35z.png" alt="sam" width="800" height="392"&gt;&lt;/a&gt;&lt;br&gt;
Browse to files and select a file. Browse to a file of your choice.&lt;br&gt;
Select Upload.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feh59atgjeie6bl97e56a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feh59atgjeie6bl97e56a.png" alt="Image description" width="800" height="448"&gt;&lt;/a&gt;&lt;br&gt;
Close the &lt;strong&gt;upload&lt;/strong&gt; window, &lt;strong&gt;Refresh&lt;/strong&gt; the page, and ensure your file was uploaded.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5im26w5bwfsk9rxyqgo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5im26w5bwfsk9rxyqgo.png" alt="Im" width="800" height="410"&gt;&lt;/a&gt;&lt;br&gt;
4.2. Select your &lt;strong&gt;uploaded&lt;/strong&gt; file.&lt;br&gt;
On the Overview tab, copy the &lt;strong&gt;URL&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevoxw3hpao3ciokizbn5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevoxw3hpao3ciokizbn5.png" alt="DES" width="800" height="505"&gt;&lt;/a&gt;&lt;br&gt;
Paste the &lt;strong&gt;URL&lt;/strong&gt; into a new browser tab.&lt;br&gt;
If you have uploaded an image file it will display in the browser.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4eu09garul57ukg50wta.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4eu09garul57ukg50wta.png" alt="pam" width="800" height="501"&gt;&lt;/a&gt;&lt;br&gt;
5.0. &lt;strong&gt;Configure soft delete&lt;/strong&gt;&lt;br&gt;
5.1. Go to the &lt;strong&gt;Overview blade&lt;/strong&gt; of the storage account.&lt;br&gt;
On the Properties page, locate the Blob service section.&lt;br&gt;
Select the Blob soft delete setting.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3aondxotfm997lug9jx9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3aondxotfm997lug9jx9.png" alt="Bam" width="800" height="477"&gt;&lt;/a&gt;&lt;br&gt;
Ensure the Enable soft delete for blobs is checked&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2uyegrbw2rfyajcew88r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2uyegrbw2rfyajcew88r.png" alt="CAS" width="800" height="465"&gt;&lt;/a&gt;&lt;br&gt;
Change the Keep deleted blobs for (in days setting is 21.&lt;br&gt;
Notice you can also &lt;strong&gt;Enable soft delete&lt;/strong&gt; for containers.&lt;br&gt;
Don’t forget to Save your changes.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0sqje4hewt0kjg6ifmi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0sqje4hewt0kjg6ifmi.png" alt="Fam" width="800" height="483"&gt;&lt;/a&gt;&lt;br&gt;
5.2. If something gets deleted, you need to practice using soft delete to restore the files.&lt;br&gt;
Navigate to the container where you uploaded a file.&lt;br&gt;
Select the file you uploaded and then select Delete.&lt;br&gt;
Select OK to confirm deleting the file.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft2rud51h1zudl967oyoi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft2rud51h1zudl967oyoi.png" alt="JAM" width="800" height="472"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F61aomlbxn0ditgicq9i8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F61aomlbxn0ditgicq9i8.png" alt="Gad" width="800" height="476"&gt;&lt;/a&gt;&lt;br&gt;
On the container Overview page, toggle the slider to show deleted blobs. This toggle is to the right of the search box.&lt;br&gt;
Select your deleted file, and use the ellipses on the far right, to Undelete the file.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbpxns9oumu83giqqit1a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbpxns9oumu83giqqit1a.png" alt="Ima" width="800" height="375"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7op20mbfhns3235zblbh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7op20mbfhns3235zblbh.png" alt="AWE" width="800" height="487"&gt;&lt;/a&gt;&lt;br&gt;
Refresh the container and confirm the file has been restored.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpuoxs6ycp5gu17tj7hr9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpuoxs6ycp5gu17tj7hr9.png" alt="FAD" width="800" height="447"&gt;&lt;/a&gt;&lt;br&gt;
6.0. &lt;strong&gt;Configure blob versioning&lt;/strong&gt;&lt;br&gt;
6.1. Go to the &lt;strong&gt;Overview blade&lt;/strong&gt; of the &lt;strong&gt;storage account&lt;/strong&gt;.&lt;br&gt;
In the &lt;strong&gt;Properties section&lt;/strong&gt;, locate the &lt;strong&gt;Blob service section&lt;/strong&gt;.&lt;br&gt;
Select the &lt;strong&gt;Versioning setting&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmmrzlvikbazmijbk899d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmmrzlvikbazmijbk899d.png" alt="Im" width="800" height="482"&gt;&lt;/a&gt;&lt;br&gt;
Ensure the &lt;strong&gt;Enable versioning&lt;/strong&gt; for the blobs checkbox is checked.&lt;br&gt;
Notice your options to keep all versions or delete versions after.&lt;br&gt;
Don’t forget to Save your changes.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenig481252vj9lrl552n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenig481252vj9lrl552n.png" alt="dAP" width="800" height="483"&gt;&lt;/a&gt;&lt;br&gt;
6.2. As you have time experiment with restoring &lt;strong&gt;previous blob versions&lt;/strong&gt;.&lt;br&gt;
Upload another version of your container file. This overwrites your existing file.&lt;br&gt;
Your previous file version is listed on the Show Deleted Blobs page.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqn9d12cfl5a2byzon6go.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqn9d12cfl5a2byzon6go.png" alt="sam" width="800" height="413"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbqi0w8442n8a0244myik.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbqi0w8442n8a0244myik.png" alt="Jam" width="800" height="479"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7ypt7b12n10cdlgejsp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7ypt7b12n10cdlgejsp.png" alt="ADA" width="800" height="486"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
By completing this guide, you've successfully set up storage on the Azure portal to support your public website's needs. This ensures your content is accessible, secure, and optimized for performance, allowing your audience to enjoy a seamless experience. Regularly monitor and maintain your storage to keep your website running efficiently and adapt to growing demands.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>devops</category>
    </item>
    <item>
      <title>Step-by-step guide on how to provide storage for the IT department testing and training on the Azure portal.</title>
      <dc:creator>Nelson Akpa</dc:creator>
      <pubDate>Wed, 02 Apr 2025 05:34:19 +0000</pubDate>
      <link>https://dev.to/nelson_akpa01/step-by-step-guide-on-how-to-provide-storage-for-the-it-department-testing-and-training-on-the-73e</link>
      <guid>https://dev.to/nelson_akpa01/step-by-step-guide-on-how-to-provide-storage-for-the-it-department-testing-and-training-on-the-73e</guid>
      <description>&lt;p&gt;Table of contents. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction.&lt;/li&gt;
&lt;li&gt;Create and deploy a resource group.&lt;/li&gt;
&lt;li&gt;Create a storage account on the Azure Portal. &lt;/li&gt;
&lt;li&gt;Configure basic settings for security and networking.&lt;/li&gt;
&lt;li&gt;Conclusion. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;.&lt;br&gt;
Providing &lt;strong&gt;storage&lt;/strong&gt; on the &lt;strong&gt;Azure portal&lt;/strong&gt; is critical for empowering IT departments in their testing and training endeavors. This guide offers a streamlined approach to setting up storage solutions tailored to meet the dynamic needs of technical testing environments. Whether managing workflows or preparing for training sessions, this step-by-step guide ensures your Azure storage setup is efficient, secure, and ready to support your IT team's objectives.&lt;/p&gt;

&lt;p&gt;First, go to your &lt;strong&gt;browser&lt;/strong&gt;and paste the link &lt;strong&gt;&lt;a href="https://learn.microsoft.com/en-us/credentials/applied-skills/secure-storage-azure-files-azure-blob-storage/" rel="noopener noreferrer"&gt;https://learn.microsoft.com/en-us/credentials/applied-skills/secure-storage-azure-files-azure-blob-storage/&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F95jiuq7f04177mj7f611.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F95jiuq7f04177mj7f611.png" alt="st" width="800" height="534"&gt;&lt;/a&gt;&lt;br&gt;
Click on the &lt;strong&gt;guided project&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6u17ie40wuslc0s8j236.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6u17ie40wuslc0s8j236.png" alt="Image" width="800" height="518"&gt;&lt;/a&gt;&lt;br&gt;
Scroll down, and click on the exercise guides as shown in the image below.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3ndo5kbtn9w9g4rmug8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3ndo5kbtn9w9g4rmug8.png" alt="Guide" width="800" height="529"&gt;&lt;/a&gt;&lt;br&gt;
Click on the &lt;strong&gt;launch exercise&lt;/strong&gt;. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3p1hxevn12ynk8wvh0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa3p1hxevn12ynk8wvh0s.png" alt="Launch" width="800" height="547"&gt;&lt;/a&gt;&lt;br&gt;
Follow the instructions chronologically.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq8ll5w1xwhem1lfu7rn0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq8ll5w1xwhem1lfu7rn0.png" alt="Guide" width="800" height="569"&gt;&lt;/a&gt;&lt;br&gt;
2.0. Login to your &lt;strong&gt;Azure portal&lt;/strong&gt;, create and deploy a resource group to hold all your project resources.&lt;br&gt;
Search for and select &lt;strong&gt;Resource group&lt;/strong&gt; and click on &lt;strong&gt;create&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmqqtuzr8f3se009z6zxj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmqqtuzr8f3se009z6zxj.png" alt="rg" width="800" height="413"&gt;&lt;/a&gt;&lt;br&gt;
2.1. Choose the &lt;strong&gt;Resource group&lt;/strong&gt; name and select a &lt;strong&gt;region&lt;/strong&gt;(Use this &lt;strong&gt;region&lt;/strong&gt; throughout the project)&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fid0g8x5zd2xiiwmc2lw0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fid0g8x5zd2xiiwmc2lw0.png" alt="sub" width="800" height="511"&gt;&lt;/a&gt;&lt;br&gt;
2.2 Add &lt;strong&gt;Tags&lt;/strong&gt; and then, &lt;strong&gt;review and create&lt;/strong&gt;. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0755qh8ujoefxw3nep3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb0755qh8ujoefxw3nep3.png" alt="Create" width="800" height="516"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftgy5pc69rvzz0d85zi4h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftgy5pc69rvzz0d85zi4h.png" alt="data" width="800" height="514"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F37spn083tsjl1k1vi9zw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F37spn083tsjl1k1vi9zw.png" alt="gate" width="800" height="504"&gt;&lt;/a&gt;&lt;br&gt;
2.3. Click on &lt;strong&gt;Go to Resources&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3josvwdg5bpn91dauylk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3josvwdg5bpn91dauylk.png" alt="store" width="800" height="436"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Resource group&lt;/strong&gt; created successfully. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Filb5d85avi6azk94jn16.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Filb5d85avi6azk94jn16.png" alt="storerg" width="800" height="420"&gt;&lt;/a&gt;&lt;br&gt;
3.0. Create and deploy a &lt;strong&gt;storage account&lt;/strong&gt; to support testing and training.&lt;br&gt;
3.1. Navigate to the &lt;strong&gt;storage account&lt;/strong&gt; session and click on &lt;strong&gt;create&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwfjexsaetw5zze7bl05z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwfjexsaetw5zze7bl05z.png" alt="Storage" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
3.2. Follow the following procedure &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the &lt;strong&gt;Basics&lt;/strong&gt; tab, select your &lt;strong&gt;Resource group&lt;/strong&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foamltymzm6eery7qqb8c.png" alt="basics" width="800" height="349"&gt;
&lt;/li&gt;
&lt;li&gt;Provide a &lt;strong&gt;Storage account&lt;/strong&gt; name. The &lt;strong&gt;storage account&lt;/strong&gt; name must be unique in Azure.&lt;/li&gt;
&lt;li&gt;Set the &lt;strong&gt;Performance&lt;/strong&gt; to &lt;strong&gt;Standard&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Review&lt;/strong&gt;, and then &lt;strong&gt;Create&lt;/strong&gt;.
Wait for the storage account to &lt;strong&gt;deploy&lt;/strong&gt; and then Go to the &lt;strong&gt;resource&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1i83fw075xoutiy6qs9l.png" alt="Image" width="800" height="286"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5mbvl7jccaqwbx7wqh1b.png" alt="Stubb" width="800" height="531"&gt;
Click on &lt;strong&gt;create&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnhbbj4fwyjpsuamk9wli.png" alt="Im" width="800" height="504"&gt;
Go to &lt;strong&gt;resource&lt;/strong&gt; once the &lt;strong&gt;storage account&lt;/strong&gt; is deployed.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwxakibrfusij6mwkhm2w.png" alt="deployed" width="800" height="502"&gt;
4.0 Configure simple settings in the &lt;strong&gt;storage account&lt;/strong&gt;.
4.1. In your storage account, in the Data management section, select the Redundancy blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fal9xw2973p9xygrg1a6f.png" alt="red" width="800" height="494"&gt;
Select &lt;strong&gt;Locally-redundant storage&lt;/strong&gt; (LRS) in the Redundancy drop-down.
Be sure to Save your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pgef1rvwzx4j0hrvdj2.png" alt="LLS" width="800" height="499"&gt;
&lt;strong&gt;Refresh&lt;/strong&gt; the page and notice the content only exists in the primary location.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwj1mlnoa4rhr9d9rhcxr.png" alt="Refreshed" width="800" height="516"&gt;
4.2. The storage account should only accept requests from secure connections.
In the &lt;strong&gt;Settings section&lt;/strong&gt;, select the Configuration blade.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flumslniauyyp2qdjj7ug.png" alt="setttings" width="800" height="516"&gt;
Ensure the &lt;strong&gt;Secure transfer&lt;/strong&gt; required is Enabled.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn7kq0casbleh7dech9nx.png" alt="enabled" width="800" height="501"&gt;
4.3. &lt;strong&gt;Developers&lt;/strong&gt; would like the &lt;strong&gt;storage account&lt;/strong&gt; to use at least &lt;strong&gt;TLS version 1.2&lt;/strong&gt;.
In the Settings section, select the Configuration Blade.
Ensure the Minimal TLS version is set to Version 1.2.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1e1vr9zic2z0ypiqi5h.png" alt="tls" width="800" height="491"&gt;
4.4. Until the &lt;strong&gt;storage&lt;/strong&gt; is needed again, disable &lt;strong&gt;requests&lt;/strong&gt; to the storage account.
In the &lt;strong&gt;Settings&lt;/strong&gt; section, select the &lt;strong&gt;Configuration Blade&lt;/strong&gt;.
Ensure that the &lt;strong&gt;Allow storage account key access&lt;/strong&gt; is Disabled.
Be sure to Save your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foe58418ko7rajzm20cba.png" alt="tb" width="800" height="522"&gt;
4.5. Ensure the &lt;strong&gt;storage account&lt;/strong&gt; allows public access from all networks. 
In the &lt;strong&gt;Security + networking section&lt;/strong&gt;, select the &lt;strong&gt;Networking blade&lt;/strong&gt;.
Ensure &lt;strong&gt;Public network access&lt;/strong&gt; is set to &lt;strong&gt;Enabled&lt;/strong&gt; from all networks.
Be sure to &lt;strong&gt;Save&lt;/strong&gt; your changes.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcnrbt7dalls8dnlgylur.png" alt="tg" width="800" height="511"&gt;
&lt;strong&gt;Conclusion&lt;/strong&gt;
Following this guide, you've successfully provisioned and configured storage on the Azure portal to support your IT department's testing and training needs. This setup ensures scalability, security, and efficiency, enabling your team to focus on innovation and learning. To align with your organization's evolving requirements, regularly review and optimize your storage solutions.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>A step-by-step guide to creating an EC2 instance in AWS (using Ubuntu server as the image) to install nginx.</title>
      <dc:creator>Nelson Akpa</dc:creator>
      <pubDate>Tue, 01 Apr 2025 06:59:17 +0000</pubDate>
      <link>https://dev.to/nelson_akpa01/a-step-by-step-guide-to-creating-an-ec2-instance-in-aws-using-ubuntu-server-as-the-image-to-1994</link>
      <guid>https://dev.to/nelson_akpa01/a-step-by-step-guide-to-creating-an-ec2-instance-in-aws-using-ubuntu-server-as-the-image-to-1994</guid>
      <description>&lt;p&gt;&lt;strong&gt;Table of contents&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Create an EC2 instance on AWS&lt;/li&gt;
&lt;li&gt;Install Ubuntu nginx server &lt;/li&gt;
&lt;li&gt;Conclusion &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
Setting up an &lt;strong&gt;EC2 instance&lt;/strong&gt; in &lt;strong&gt;AWS&lt;/strong&gt; is crucial for deploying scalable and efficient applications. This guide will walk you through creating an &lt;strong&gt;EC2 instance&lt;/strong&gt; using &lt;strong&gt;Ubuntu Server&lt;/strong&gt; as the &lt;strong&gt;image&lt;/strong&gt;. Once the instance is ready, you'll install &lt;strong&gt;Nginx&lt;/strong&gt;, a powerful web server known for its speed and versatility. Whether you're new to &lt;strong&gt;AWS&lt;/strong&gt; or a seasoned user, this guide ensures a smooth setup tailored to your needs. &lt;/p&gt;

&lt;p&gt;2.0 &lt;strong&gt;Create an EC2 instance&lt;/strong&gt;. &lt;br&gt;
Log in to &lt;strong&gt;AWS&lt;/strong&gt;, create a free account, and sign in.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9029m1m39tw97a51y40.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9029m1m39tw97a51y40.png" alt="Login" width="800" height="503"&gt;&lt;/a&gt;&lt;br&gt;
Type &lt;strong&gt;EC2&lt;/strong&gt; in the search bar and click on it.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2fhulr04vu14tfbjpfxo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2fhulr04vu14tfbjpfxo.png" alt="EC2" width="800" height="487"&gt;&lt;/a&gt;&lt;br&gt;
2.1. Click on &lt;strong&gt;Launch Instance&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1uernvbw6c5uep7bh7w6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1uernvbw6c5uep7bh7w6.png" alt="LI" width="800" height="486"&gt;&lt;/a&gt;&lt;br&gt;
2.2. Type &lt;strong&gt;Nginx server&lt;/strong&gt; in the &lt;strong&gt;Name &amp;amp; Tags&lt;/strong&gt; session.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhffcwbonl2qd33q9p9u0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhffcwbonl2qd33q9p9u0.png" alt="name" width="800" height="516"&gt;&lt;/a&gt;&lt;br&gt;
You can also add &lt;strong&gt;tags&lt;/strong&gt; if you so desire.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02xfhjnxhl3ugn4rpnvd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02xfhjnxhl3ugn4rpnvd.png" alt="tags" width="800" height="387"&gt;&lt;/a&gt;&lt;br&gt;
2.3. Click on &lt;strong&gt;Application and OS images&lt;/strong&gt; and select &lt;strong&gt;Ubuntu server&lt;/strong&gt;.(Ensure you select the &lt;strong&gt;free tier&lt;/strong&gt; Ubuntu server)&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ohcjiahr4mfb5u5z29s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ohcjiahr4mfb5u5z29s.png" alt="IM" width="800" height="497"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv4qq60iqcofm7v990l8x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv4qq60iqcofm7v990l8x.png" alt="FT" width="800" height="496"&gt;&lt;/a&gt;&lt;br&gt;
2.4. Go to the &lt;strong&gt;instance type&lt;/strong&gt; and select &lt;strong&gt;t2.micro&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpbczj0cg45z6fplpfpz9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpbczj0cg45z6fplpfpz9.png" alt="T2" width="800" height="506"&gt;&lt;/a&gt;&lt;br&gt;
2.5. Go to &lt;strong&gt;Key Pair(login)&lt;/strong&gt;,click and create a key(&lt;strong&gt;nginxserverkey&lt;/strong&gt;) &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3b2ggfs8tj2nt4y8s2b2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3b2ggfs8tj2nt4y8s2b2.png" alt="kp" width="800" height="441"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkkl8omhoi3zolt90u3y2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkkl8omhoi3zolt90u3y2.png" alt="KP" width="800" height="510"&gt;&lt;/a&gt;&lt;br&gt;
2.6. Go to the &lt;strong&gt;network settings&lt;/strong&gt; and allow &lt;strong&gt;SSH&lt;/strong&gt; and &lt;strong&gt;HTTP&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb01utumca44ioc1oxwgu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb01utumca44ioc1oxwgu.png" alt="NS" width="800" height="512"&gt;&lt;/a&gt;&lt;br&gt;
(&lt;strong&gt;Note&lt;/strong&gt; that the &lt;strong&gt;configure storage&lt;/strong&gt; session and &lt;strong&gt;advanced storage&lt;/strong&gt; session remain the same).&lt;br&gt;
2.7. Click on &lt;strong&gt;Launch instance&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp3msc8oi1ptq5c5rz4p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp3msc8oi1ptq5c5rz4p.png" alt="LI" width="800" height="416"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzx7xyzlsou3t1bp9t5sr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzx7xyzlsou3t1bp9t5sr.png" alt="Success" width="800" height="414"&gt;&lt;/a&gt;&lt;br&gt;
3.0. Installing &lt;strong&gt;Ubuntu(nginx)&lt;/strong&gt; server &lt;br&gt;
3.1. Click on &lt;strong&gt;Instance ID&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiedtl0v3euhlc892jcxf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiedtl0v3euhlc892jcxf.png" alt="LI" width="800" height="414"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxek9hcmn3zg2gvjuntau.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxek9hcmn3zg2gvjuntau.png" alt="so" width="800" height="416"&gt;&lt;/a&gt;&lt;br&gt;
3.2. Click on &lt;strong&gt;Connect&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F07bswt47gqd5nsxejqa4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F07bswt47gqd5nsxejqa4.png" alt="CV" width="800" height="415"&gt;&lt;/a&gt;&lt;br&gt;
3.3. Navigate to the &lt;strong&gt;SSH Client&lt;/strong&gt; session, and copy the &lt;strong&gt;link&lt;/strong&gt; under the example(ssh -i "nginxserverkey.pem" &lt;a href="mailto:ubuntu@ec2-18-130-8-197.eu-west-2.compute.amazonaws.com"&gt;ubuntu@ec2-18-130-8-197.eu-west-2.compute.amazonaws.com&lt;/a&gt;)&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1rpr672uq26fpdhfa6xq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1rpr672uq26fpdhfa6xq.png" alt="link" width="800" height="411"&gt;&lt;/a&gt;&lt;br&gt;
3.4. First, copy the downloaded file to your computer's home directory then, open your laptop terminal windows and type &lt;strong&gt;sudo&lt;/strong&gt; space and paste the link you copied already (ssh -i "nginxserverkey.pem" &lt;a href="mailto:ubuntu@ec2-18-130-8-197.eu-west-2.compute.amazonaws.com"&gt;ubuntu@ec2-18-130-8-197.eu-west-2.compute.amazonaws.com&lt;/a&gt;) and then click enter&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlr7joghfds41si5qyw9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlr7joghfds41si5qyw9.png" alt="Pt" width="800" height="313"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhf47badmop18wfepinhj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhf47badmop18wfepinhj.png" alt="GY" width="800" height="299"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4s6aex1znxop8yxutxhu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4s6aex1znxop8yxutxhu.png" alt="Success" width="800" height="463"&gt;&lt;/a&gt;&lt;br&gt;
3.5. &lt;strong&gt;Verify the Ubuntu nginx server&lt;/strong&gt;&lt;br&gt;
Navigate to the &lt;strong&gt;E2 instance connect&lt;/strong&gt; and click connect &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5xsyr27djhdiszintkz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5xsyr27djhdiszintkz.png" alt="Cv" width="800" height="408"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe5pp3mmlki7lb2u74frd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe5pp3mmlki7lb2u74frd.png" alt="Cv" width="800" height="404"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Congratulations&lt;/strong&gt;! You've successfully created an &lt;strong&gt;EC2 instance&lt;/strong&gt; in &lt;strong&gt;AWS&lt;/strong&gt;, using &lt;strong&gt;Ubuntu Server&lt;/strong&gt; as your base image, and installed &lt;strong&gt;Nginx&lt;/strong&gt; to serve your applications. This setup empowers you with a scalable and efficient web server environment. Moving forward, ensure regular updates and monitoring to maintain security and performance for your instance and deployed applications.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>devops</category>
    </item>
    <item>
      <title>Step-by-step Guide to Installing Solutions on your VM - Nginx, IIS web Server role</title>
      <dc:creator>Nelson Akpa</dc:creator>
      <pubDate>Thu, 27 Mar 2025 05:09:03 +0000</pubDate>
      <link>https://dev.to/nelson_akpa01/step-by-step-guide-to-installing-solutions-on-your-vm-nginx-iis-web-server-role-356g</link>
      <guid>https://dev.to/nelson_akpa01/step-by-step-guide-to-installing-solutions-on-your-vm-nginx-iis-web-server-role-356g</guid>
      <description>&lt;p&gt;&lt;strong&gt;Table of contents&lt;/strong&gt; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Create an &lt;strong&gt;Azure Linux VM&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Setting Up &lt;strong&gt;Nginx&lt;/strong&gt; on an &lt;strong&gt;Azure Linux VM&lt;/strong&gt; Using &lt;strong&gt;SSH&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Create an &lt;strong&gt;Azure IISVm&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Install the &lt;strong&gt;IIS web server&lt;/strong&gt; role via &lt;strong&gt;Powershell&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conclusion. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;INTRODUCTION&lt;/strong&gt;&lt;br&gt;
Setting up your virtual machine (VM) to host web applications is essential for delivering content efficiently and reliably. This guide provides a step-by-step approach to installing key solutions, such as &lt;strong&gt;Nginx&lt;/strong&gt;, a high-performance web server, and the IIS Web Server role on your VM. Whether you're deploying a Linux-based or Windows-based server, this introduction ensures you’re prepared to configure your environment effectively.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;2.0 &lt;strong&gt;Create an 'Azure Linux VM'&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Login&lt;/strong&gt; to your Azure account, navigate or search &lt;strong&gt;Virtual machines&lt;/strong&gt;, and then click on &lt;strong&gt;Create&lt;/strong&gt; and click on &lt;strong&gt;Azure Virtual Machine&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyom1fdqlfni55ahb5gi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyom1fdqlfni55ahb5gi.png" alt="login 1" width="800" height="513"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgq9dtp2mw013yv6jejl4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgq9dtp2mw013yv6jejl4.png" alt="Azure login 2" width="800" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.1 Please, ensure you are on the right subscription and then create a new Resource group name. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmli0m4aw3ghbpabhn1a3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmli0m4aw3ghbpabhn1a3.png" alt="RG" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.2. Fill in the &lt;strong&gt;Instance details&lt;/strong&gt; as shown in the images below;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8sqbrigukefbxp7c2gw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8sqbrigukefbxp7c2gw.png" alt="details" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.3. Navigate to the administrator account as shown in the image below; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2dmnmbglbf12evhjaazk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2dmnmbglbf12evhjaazk.png" alt="Account" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.4. Go to the monitoring section and disable boot diagnostics.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jg47c72m5iviz1v28me.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jg47c72m5iviz1v28me.png" alt="Ms" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.5. Navigate to Tags and add your preferred tags.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff98sof66wnp1x8t2k390.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff98sof66wnp1x8t2k390.png" alt="Tags" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.6. Go to &lt;strong&gt;Review and Create&lt;/strong&gt; and ensure validation is passed.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhzk8v33d1a42cvjgytgp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhzk8v33d1a42cvjgytgp.png" alt="review" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.7. Click &lt;strong&gt;Create&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsenwnw5iw23gj9io69es.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsenwnw5iw23gj9io69es.png" alt="create" width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.8. Once &lt;strong&gt;deployment&lt;/strong&gt; is complete, click "&lt;strong&gt;Go to Resource&lt;/strong&gt;"&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn0fcpljci7k13hdkqz8o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn0fcpljci7k13hdkqz8o.png" alt="create" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.9. &lt;strong&gt;Linux VM&lt;/strong&gt; successfully &lt;strong&gt;created&lt;/strong&gt;. Click on &lt;strong&gt;public address&lt;/strong&gt;, extend the idle timeout, and save. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc655uhn5gihpmf7la4is.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc655uhn5gihpmf7la4is.png" alt="Lm" width="800" height="509"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff3vglystnkz3a8pzq2gy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff3vglystnkz3a8pzq2gy.png" alt="Idle" width="800" height="383"&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;3.0 Setting Up &lt;strong&gt;Nginx&lt;/strong&gt; on an &lt;strong&gt;Azure Linux VM&lt;/strong&gt; Using &lt;strong&gt;SSH&lt;/strong&gt;&lt;br&gt;
Open the terminal on your laptop and follow these steps; &lt;/p&gt;

&lt;p&gt;ssh username@hostname_or_ip &lt;br&gt;
🔹 username → The account you want to log in with.&lt;br&gt;
🔹 hostname_or_ip → The IP address or domain name of the VM.&lt;br&gt;
Which is ssh &lt;a href="mailto:Alpharg@20.77.10.115"&gt;Alpharg@20.77.10.115&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbxj95voh3w0noehkqebu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbxj95voh3w0noehkqebu.png" alt="LVM" width="800" height="519"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.1 Enter "&lt;strong&gt;Yes&lt;/strong&gt;"&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnvue5j2sks94uuadt1oa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnvue5j2sks94uuadt1oa.png" alt="Cp" width="800" height="752"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.2 Enter your &lt;strong&gt;Linux VM&lt;/strong&gt; password&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz086nnqfhyf29eo5qijt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz086nnqfhyf29eo5qijt.png" alt="Dm" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.3. Type in &lt;strong&gt;"sudo su"&lt;/strong&gt; and click enter&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faz211q0paj1mmt0q4pui.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faz211q0paj1mmt0q4pui.png" alt="Sudo" width="800" height="947"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.4 Type in &lt;strong&gt;apt update&lt;/strong&gt; and click &lt;strong&gt;enter&lt;/strong&gt;&lt;br&gt;
It loads up the image below; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85kj8oqd7vhqtnqacspk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F85kj8oqd7vhqtnqacspk.png" alt="apt update" width="800" height="900"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.5. Type in &lt;strong&gt;apt install nginx&lt;/strong&gt; and click enter.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fot5enicwkwd0xl902e1h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fot5enicwkwd0xl902e1h.png" alt="nginx" width="800" height="856"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.6. Type &lt;strong&gt;Y&lt;/strong&gt; and click enter. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcd0opsgg5ijmipmj49ng.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcd0opsgg5ijmipmj49ng.png" alt="Nginx" width="800" height="775"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.7. &lt;strong&gt;Nginx web server&lt;/strong&gt; successfully installed. Now open a tab on your browser to verify by searching for the &lt;strong&gt;public IP address&lt;/strong&gt; before terminating your &lt;strong&gt;Terminal window&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fazdnxhdn0l1r3eq1sz7r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fazdnxhdn0l1r3eq1sz7r.png" alt="Nginx" width="800" height="499"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcumt74bdf2zbn7ce1ssu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcumt74bdf2zbn7ce1ssu.png" alt="Success" width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.0. Create an &lt;strong&gt;Azure IISVm&lt;/strong&gt;&lt;br&gt;
Login to your Azure account, navigate to virtual machines, and click on &lt;strong&gt;Create.&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9em48yb3bofnzz7mxci.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9em48yb3bofnzz7mxci.png" alt="Login" width="800" height="506"&gt;&lt;/a&gt;&lt;br&gt;
4.1. Fill in the &lt;strong&gt;project details&lt;/strong&gt;. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fottndufki3x9kgb9qa2z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fottndufki3x9kgb9qa2z.png" alt="RG" width="800" height="380"&gt;&lt;/a&gt;&lt;br&gt;
4.2. Fill in the &lt;strong&gt;instance details&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fab3wql9yvs7qjri7pj2x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fab3wql9yvs7qjri7pj2x.png" alt="Instance" width="800" height="521"&gt;&lt;/a&gt;&lt;br&gt;
4.3. Navigate to the &lt;strong&gt;Administrator account&lt;/strong&gt; and input your preferred &lt;strong&gt;username&lt;/strong&gt; and &lt;strong&gt;password&lt;/strong&gt;. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feoet5d08tya47k7vvoru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feoet5d08tya47k7vvoru.png" alt="admin" width="800" height="140"&gt;&lt;/a&gt;&lt;br&gt;
4.4. Select &lt;strong&gt;inbound ports&lt;/strong&gt; HTTP 80 and RDP(3389) afterward.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8i59fag5b3b43meqm5i8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8i59fag5b3b43meqm5i8.png" alt="ports" width="800" height="198"&gt;&lt;/a&gt;&lt;br&gt;
4.5. Go to licensing and tick the confirmation box. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F24e4r5d1dy4ytj2xjkf8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F24e4r5d1dy4ytj2xjkf8.png" alt="lisc" width="800" height="163"&gt;&lt;/a&gt;&lt;br&gt;
4.6. Navigate to the &lt;strong&gt;Monitoring&lt;/strong&gt; session and disable diagnostics.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7pechk26hw4gb6d8yub.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7pechk26hw4gb6d8yub.png" alt="diagno" width="800" height="518"&gt;&lt;/a&gt;&lt;br&gt;
4.7. Go to the &lt;strong&gt;Tags&lt;/strong&gt; section and add any of your choices.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi0uyz7ti10ar1nlmuahh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi0uyz7ti10ar1nlmuahh.png" alt="Tags" width="800" height="560"&gt;&lt;/a&gt;&lt;br&gt;
4.8. Click on the &lt;strong&gt;Review and create&lt;/strong&gt; button and ensure &lt;strong&gt;validation&lt;/strong&gt; is passed. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm48jc8358t2vm0d525qv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm48jc8358t2vm0d525qv.png" alt="Review" width="800" height="577"&gt;&lt;/a&gt;&lt;br&gt;
4.9. Click on the &lt;strong&gt;Create **button. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcf0t8n9r0gbtbmbyhdip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcf0t8n9r0gbtbmbyhdip.png" alt="Create" width="800" height="554"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1j7tluwhypm1nx2d2527.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1j7tluwhypm1nx2d2527.png" alt="deployment" width="800" height="564"&gt;&lt;/a&gt;&lt;br&gt;
4.10. Go to **Resource&lt;/strong&gt;. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkqcjjhdcr9iegp6br7rs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkqcjjhdcr9iegp6br7rs.png" alt="rg" width="800" height="371"&gt;&lt;/a&gt;&lt;br&gt;
Click on the &lt;strong&gt;public address&lt;/strong&gt; and extend the &lt;strong&gt;idle timeout&lt;/strong&gt;, then save afterward. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzlvqd9ig48h4wojg8lbk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzlvqd9ig48h4wojg8lbk.png" alt="PB" width="800" height="392"&gt;&lt;/a&gt;.&lt;br&gt;
4.11. Click on &lt;strong&gt;Connect&lt;/strong&gt; and click the &lt;strong&gt;Select button&lt;/strong&gt;. Download the &lt;strong&gt;RDP file&lt;/strong&gt; once the &lt;strong&gt;IIS VM&lt;/strong&gt; is &lt;strong&gt;configured&lt;/strong&gt;. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2b2svpiw71qww2lmkxiv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2b2svpiw71qww2lmkxiv.png" alt="Connect" width="800" height="664"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffa5huzeo6fjh48bx0vr3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffa5huzeo6fjh48bx0vr3.png" alt="RdP" width="800" height="494"&gt;&lt;/a&gt;&lt;br&gt;
4.12. Open the IISVM using a downloaded Microsoft remote desktop.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffbmvol9k64wzwy6qxzd7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffbmvol9k64wzwy6qxzd7.png" alt="IISvm" width="800" height="493"&gt;&lt;/a&gt;&lt;br&gt;
Enter the password &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fob4ai52yr5847wnyqhc2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fob4ai52yr5847wnyqhc2.png" alt="PW" width="800" height="490"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Falsxfk16r4zqirhvs5zm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Falsxfk16r4zqirhvs5zm.png" alt="Connect" width="800" height="429"&gt;&lt;/a&gt;&lt;br&gt;
Close the &lt;strong&gt;server manager&lt;/strong&gt; page that would pop up.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6wj77g7jstezjbysxu3a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6wj77g7jstezjbysxu3a.png" alt="Success" width="800" height="498"&gt;&lt;/a&gt;&lt;br&gt;
5.0. Install the IIS web server role via Powershell.&lt;br&gt;
5.1. Type &lt;strong&gt;PowerShell&lt;/strong&gt; in the search bar, right-click, and then run as administrator. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fffhfqiyu5f9hkisbxel9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fffhfqiyu5f9hkisbxel9.png" alt="Powershell" width="800" height="499"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faiovwkpzgg5pvqupe7dp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faiovwkpzgg5pvqupe7dp.png" alt="PS" width="800" height="480"&gt;&lt;/a&gt;&lt;br&gt;
5.2. Copy and paste '&lt;strong&gt;Install-WindowsFeature -name Web-Server -IncludeManagementTools&lt;/strong&gt;' and click the &lt;strong&gt;enter&lt;/strong&gt; button.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1j80zf8tsi0vxieqrlgs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1j80zf8tsi0vxieqrlgs.png" alt="GO" width="800" height="505"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;IIS Vm&lt;/strong&gt; successfully installed.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fypzygaeuhvhrmp35y9h5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fypzygaeuhvhrmp35y9h5.png" alt="success" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
5.3. &lt;strong&gt;Verify&lt;/strong&gt; this successful installation by copying the &lt;strong&gt;public IP address&lt;/strong&gt; (20.51.111.129) and search it on any browser.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9qoqezfvnbkt37ecmwmz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9qoqezfvnbkt37ecmwmz.png" alt="search" width="800" height="515"&gt;&lt;/a&gt; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F98oqz71kkv9s3db2xg6g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F98oqz71kkv9s3db2xg6g.png" alt="Success" width="800" height="536"&gt;&lt;/a&gt;.&lt;br&gt;
&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
With &lt;strong&gt;Nginx&lt;/strong&gt; and &lt;strong&gt;IIS&lt;/strong&gt; successfully installed and configured, your virtual machine can now efficiently serve web applications. Whether you're leveraging Nginx for its performance or IIS for its seamless integration with Windows environments, this guide has provided the foundation for setting up a robust and reliable web server. Just to remind you, continuous monitoring and optimization are key to ensuring your server effectively meets your needs.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>devops</category>
      <category>beginners</category>
      <category>aws</category>
    </item>
    <item>
      <title>Step-by-Step Guide to Create a Virtual Machine(VM) IN Microsoft Azure Portal.</title>
      <dc:creator>Nelson Akpa</dc:creator>
      <pubDate>Mon, 17 Mar 2025 03:54:09 +0000</pubDate>
      <link>https://dev.to/nelson_akpa01/step-by-step-guide-to-create-a-virtual-machinevm-in-microsoft-azure-portal-4fdb</link>
      <guid>https://dev.to/nelson_akpa01/step-by-step-guide-to-create-a-virtual-machinevm-in-microsoft-azure-portal-4fdb</guid>
      <description>&lt;p&gt;&lt;strong&gt;Table of contents&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;What is a Virtual Machine(VM)&lt;/li&gt;
&lt;li&gt;Step by step guide to creating a VM in Ms Azure Portal.&lt;/li&gt;
&lt;li&gt;Conclusion. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
This article explains the step-by-step process for creating a virtual machine in the Microsoft Azure portal. This web-based interface allows you to build, manage, and monitor everything from simple web apps to complex cloud applications in a single, unified console. It provides a graphical experience for managing Azure resources such as virtual machines, databases, and storage and offers tools for deploying, scaling, and monitoring your cloud infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a Virtual Machine?&lt;/strong&gt; (&lt;strong&gt;VM&lt;/strong&gt;) &lt;br&gt;
A &lt;strong&gt;virtual machine&lt;/strong&gt; (&lt;strong&gt;VM&lt;/strong&gt;) is like a computer inside your computer. It behaves like a separate computer, with its operating system and applications, but it runs on the hardware of your physical computer. Think of it as renting a fully equipped, temporary office space inside an enormous building—you get all the functionality you need, but you’re sharing the building’s infrastructure with others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step-by-step guide to creating a VM in Ms Azure.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Step 1&lt;/strong&gt;: Navigate to *&lt;em&gt;&lt;a href="https://azure.microsoft.com" rel="noopener noreferrer"&gt;https://azure.microsoft.com&lt;/a&gt; *&lt;/em&gt; on your browser, create a free trial account, and sign in. (A free trial account provides a $200 Azure credit subscription.)&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpwm13ue3oayaqj0rcbp6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpwm13ue3oayaqj0rcbp6.png" alt="Step 1" width="800" height="467"&gt;&lt;/a&gt;&lt;br&gt;
Signed in home page view&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxnb60894kfxhlwbyzwbm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxnb60894kfxhlwbyzwbm.png" alt="Signed in" width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;: In the search bar, type "&lt;strong&gt;Virtual machine&lt;/strong&gt;" and click on it when it appears in the drop-down list of resources. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fes5m6sh770wmh1qrilf3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fes5m6sh770wmh1qrilf3.png" alt="Step 2" width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;: Click "&lt;strong&gt;+Create&lt;/strong&gt;" and select "&lt;strong&gt;Create a Virtual Machine hosted by Azure&lt;/strong&gt;."&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fws0xk50m58wksa3vznv9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fws0xk50m58wksa3vznv9.png" alt="Step 3" width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt;: As the VM creation page loads, update the &lt;strong&gt;project details&lt;/strong&gt;, which includes ensuring the correct subscription displays, &lt;br&gt;
create a new resource group(e.g AplphaRg) and then click '&lt;strong&gt;ok&lt;/strong&gt;'&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnk1i011biyy8qf5dayyp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnk1i011biyy8qf5dayyp.png" alt="step 4" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5&lt;/strong&gt;: Update the &lt;strong&gt;Instance details&lt;/strong&gt; which includes choosing a &lt;strong&gt;Virtual Machine name&lt;/strong&gt;, selecting a &lt;strong&gt;region&lt;/strong&gt;, &lt;strong&gt;availabilty zone&lt;/strong&gt;,&lt;strong&gt;image&lt;/strong&gt;(your operating system) and &lt;strong&gt;size&lt;/strong&gt;(Ensure your size is available in the selected zone/region)&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzgy1bqayty1gmmq026u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzgy1bqayty1gmmq026u.png" alt="Step 5" width="800" height="514"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgi1z93bb66egyx77368c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgi1z93bb66egyx77368c.png" alt="step 5" width="800" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6&lt;/strong&gt;:Navigate to the &lt;strong&gt;administrator account&lt;/strong&gt; and create a username and password.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7dztzu5hfhoqyrqsgaqd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7dztzu5hfhoqyrqsgaqd.png" alt="Step 6" width="800" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7&lt;/strong&gt;: Go to the &lt;strong&gt;Inbound port roles section&lt;/strong&gt; which includes;&lt;br&gt;
&lt;strong&gt;Public inbound ports&lt;/strong&gt;: click on Allow selected ports&lt;br&gt;
&lt;strong&gt;Select inbound ports&lt;/strong&gt;: select HTTP (80).&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujqd8idub769bnusexwu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujqd8idub769bnusexwu.png" alt="Image description" width="800" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 8&lt;/strong&gt;:Go to &lt;strong&gt;licensing&lt;/strong&gt;,tick the license confirmation inbox and then click on'&lt;strong&gt;Next Disks&lt;/strong&gt;'&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3t7lni5tnyecwvxqo4h2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3t7lni5tnyecwvxqo4h2.png" alt="Step 8" width="800" height="157"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 9&lt;/strong&gt;: Here, you leave the** disk*&lt;em&gt;, **networking&lt;/em&gt;&lt;em&gt;, and **management&lt;/em&gt;* sections as default and go to the &lt;strong&gt;monitoring&lt;/strong&gt; section. Under &lt;strong&gt;Diagnostics&lt;/strong&gt;, go to &lt;strong&gt;boot diagnostics&lt;/strong&gt; and click on &lt;strong&gt;disable&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F044ez5rn3x9q642uydan.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F044ez5rn3x9q642uydan.png" alt="step 9" width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 10&lt;/strong&gt;: Leave the &lt;strong&gt;Advanced&lt;/strong&gt; section as default and go to the &lt;strong&gt;Tag&lt;/strong&gt; section then give it a &lt;strong&gt;name&lt;/strong&gt; and &lt;strong&gt;value&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fasld2o6rbeyogm21qfik.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fasld2o6rbeyogm21qfik.png" alt="stepp 10" width="800" height="579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 11&lt;/strong&gt;: Go to &lt;strong&gt;Review + create&lt;/strong&gt;, click on &lt;strong&gt;create&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7zaa9wr8c2qnyidb23uk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7zaa9wr8c2qnyidb23uk.png" alt="step 11" width="800" height="567"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjv0543jfbzjh2tqu2m67.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjv0543jfbzjh2tqu2m67.png" alt="Step 11a" width="800" height="576"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Deployment complete&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenq91etmj1swo0bnfbmn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenq91etmj1swo0bnfbmn.png" alt="dep page" width="800" height="551"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Successful VM Created(Home Page View)&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F19smwzaoxe1t2n6yv3nw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F19smwzaoxe1t2n6yv3nw.png" alt="Vm" width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 12&lt;/strong&gt;: &lt;strong&gt;Connect to virtual machine&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on &lt;strong&gt;Connect&lt;/strong&gt; virtual machine.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F836kmq7zynyxv9451ptz.png" alt="Connect VM" width="800" height="495"&gt;
&lt;/li&gt;
&lt;li&gt;Click on **select **and wait for the validation till it is configured.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuw19prsi8s9e9fmbrkfq.png" alt="Select" width="800" height="520"&gt;
&lt;/li&gt;
&lt;li&gt;Click on &lt;strong&gt;download RDP file&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcs85lz8rxf3r0gh6brz4.png" alt="Download" width="800" height="500"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connect to the VM&lt;/strong&gt;: If you use a MAC operating system, download a &lt;strong&gt;Remote Desktop(RDP)&lt;/strong&gt; to connect to your Windows VM.
Input the &lt;strong&gt;username&lt;/strong&gt; and &lt;strong&gt;password&lt;/strong&gt; associated to the VM
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3z84vsig3k30hvqr6ygg.png" alt="Connect VM" width="800" height="608"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjm8r5upnwpuklqe8y06x.png" alt="connect VM" width="800" height="544"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F84on49tlr7u8l3vhqa29.png" alt="VM" width="800" height="504"&gt;
&lt;strong&gt;Alpha VM Connected to remote desktop&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fisq45c77izsa025kocgk.png" alt="success" width="800" height="499"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In conclusion, following the above steps makes creating a working virtual machine relatively easy and enables one to navigate the Azure portal and explore all available resources effectively.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>devops</category>
      <category>aws</category>
      <category>azure</category>
    </item>
  </channel>
</rss>
