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)