Azure CLI Reference
Login & Account
# Interactive login
az login
# Login with service principal
az login --service-principal \
--username APP_ID \
--password PASSWORD \
--tenant TENANT_ID
# List subscriptions
az account list --output table
# Set active subscription
az account set --subscription "My Subscription"
# Show current context
az account show
# Login with managed identity (in Azure environment)
az login --identity
Resource Groups
# Create resource group
az group create --name myRG --location eastus
# List resource groups
az group list --output table
# List resources in a group
az resource list --resource-group myRG --output table
# Delete resource group (and all resources)
az group delete --name myRG --yes --no-wait
# Apply tags
az group update --name myRG \
--tags Environment=prod Owner=alice Team=platform
Virtual Machines
# Create VM
az vm create \
--resource-group myRG \
--name myVM \
--image Ubuntu2204 \
--size Standard_B2s \
--admin-username azureuser \
--ssh-key-values ~/.ssh/id_rsa.pub \
--public-ip-sku Standard
# List VMs
az vm list --resource-group myRG --output table
# Start / stop / deallocate
az vm start --resource-group myRG --name myVM
az vm stop --resource-group myRG --name myVM
az vm deallocate --resource-group myRG --name myVM
# Open port
az vm open-port --resource-group myRG --name myVM --port 80
# SSH via az
az ssh vm --resource-group myRG --name myVM
Storage
# Create storage account
az storage account create \
--name mystorageacct \
--resource-group myRG \
--location eastus \
--sku Standard_LRS \
--kind StorageV2
# Create blob container
az storage container create \
--name mycontainer \
--account-name mystorageacct
# Upload blob
az storage blob upload \
--account-name mystorageacct \
--container-name mycontainer \
--name file.txt \
--file ./file.txt
# Generate SAS token (1 day)
az storage blob generate-sas \
--account-name mystorageacct \
--container-name mycontainer \
--name file.txt \
--permissions rw \
--expiry $(date -u -d '1 day' '+%Y-%m-%dT%H:%MZ')
Key Vault
# Create Key Vault
az keyvault create \
--name myKeyVault \
--resource-group myRG \
--location eastus \
--enable-rbac-authorization true
# Set and get secrets
az keyvault secret set \
--vault-name myKeyVault \
--name db-password \
--value "SuperSecure123!"
az keyvault secret show \
--vault-name myKeyVault \
--name db-password \
--query value -o tsv
# Grant access (RBAC mode)
az role assignment create \
--role "Key Vault Secrets User" \
--assignee user@example.com \
--scope /subscriptions/SUB_ID/resourceGroups/myRG/providers/Microsoft.KeyVault/vaults/myKeyVault
App Service
# Create App Service Plan
az appservice plan create \
--name myAppPlan \
--resource-group myRG \
--sku B2 \
--is-linux
# Create web app
az webapp create \
--name my-web-app \
--resource-group myRG \
--plan myAppPlan \
--runtime "NODE:20-lts"
# Deploy from GitHub
az webapp deployment source config \
--name my-web-app \
--resource-group myRG \
--repo-url https://github.com/user/repo \
--branch main
# Set app settings
az webapp config appsettings set \
--name my-web-app \
--resource-group myRG \
--settings NODE_ENV=production DB_URL=@Microsoft.KeyVault(VaultName=myKeyVault;SecretName=db-url)