azcli

Azure CLI (az). Use when: managing Azure resources, deploying to App Service/Functions/Container Apps/AKS, working with Storage, SQL Database, Cosmos DB, VMs, VNets, NSGs, Key Vault, Entra ID (Azure AD), RBAC, Service Bus, Event Hubs, Container Registry, Azure Monitor, DNS, or any Azure service. Also covers: authentication, subscription management, CI/CD integration (GitHub Actions/Azure DevOps), Bicep/ARM templates, managed identities, and infrastructure automation.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "azcli" with this command: npx skills add marcfargas/skills/marcfargas-skills-azcli

azcli — Azure Command-Line Interface

Command-line interface for managing Azure resources. Covers az and its 200+ command groups for all Azure services.

Docs: https://learn.microsoft.com/en-us/cli/azure/

Platform Notes (Windows + Git Bash)

  • Install: winget install --exact --id Microsoft.AzureCLI (preferred) or MSI from https://aka.ms/installazurecliwindows
  • After install/update: close and reopen terminal — required for PATH
  • Config: ~/.azure/ (credentials, config, profiles)
  • Secrets: use Key Vault or env vars, never commit credentials
  • Extensions: az extension add --name NAME (some features require extensions)
  • Version: az version (check for updates: az upgrade)

⚠️ Quoting Gotchas

Git Bash, PowerShell, and cmd have different quoting rules for --query (JMESPath):

# Git Bash — use single quotes for JMESPath
az vm list --query '[].name' -o tsv

# PowerShell — use single quotes or escaped double quotes
az vm list --query '[].name' -o tsv

# Avoid: Git Bash may mangle double-quoted JMESPath

⚠️ Cost: Commands that create resources (VMs, databases, clusters) incur Azure charges. Always confirm subscription and region before creating.

Agent Safety Model

Operations classified by risk. Follow this model for all az commands.

LevelGateExamples
READProceed autonomouslylist, show, get, account show, monitor log-analytics query
WRITEConfirm with user; note cost if billablecreate, deploy, update, az storage blob upload
DESTRUCTIVEAlways confirm; show what's affecteddelete, purge, az group delete, RBAC removal
EXPENSIVEConfirm + state approximate costAKS clusters ($70+/mo), SQL Database ($5-2k/mo), VMs (~$5-2k/mo)
SECURITYConfirm + explain impactNSG rules opening ports, --allow-unauthenticated, RBAC owner/contributor grants, Key Vault access policies
FORBIDDENRefuse; escalate to humanaz ad app credential reset with plaintext secrets, az group delete on production RGs, passwords in CLI args

Rules:

  • Never combine --yes with destructive operations — it suppresses the only safety gate
  • Never put passwords/secrets as command-line arguments — visible in process list & shell history
  • Always use -o json for machine-parseable output (agents can't reliably parse tables)
  • When in doubt, treat as DESTRUCTIVE

Command Structure

az [GROUP] [SUBGROUP] COMMAND [ARGS] [FLAGS]

Key global flags: --subscription, --output (-o), --query, --verbose, --debug, --only-show-errors, --yes

Service Reference

ServiceFileKey Commands
Auth & Configauth.mdLogin, service principals, managed identities, subscriptions, config
IAM & Resourcesiam.mdResource groups, RBAC, Entra ID (Azure AD), Key Vault
Compute & Networkingcompute.mdVMs, VNets, NSGs, DNS, load balancers, monitoring
Serverless & Containersserverless.mdApp Service, Functions, Container Apps, AKS, Container Registry
Storagestorage.mdStorage accounts, blobs, file shares, queues, tables
Datadata.mdSQL Database, Cosmos DB, Service Bus, Event Hubs
Automation & CI/CDautomation.mdScripting, output formats, JMESPath, Bicep/ARM, GitHub Actions

Read the per-service file for full command reference.

Pre-Flight Checks

Before working with any Azure service:

# 1. Logged in?
az account show -o json

# 2. Correct subscription?
az account show --query '{Name:name, Id:id, State:state}' -o json

# 3. Change subscription if needed
az account set --subscription "<name-or-id>"

# 4. Default location set?
az config get defaults.location 2>/dev/null

# 5. Set default location (optional)
az config set defaults.location=westeurope

# 6. Resource provider registered? (most are auto-registered)
az provider show --namespace Microsoft.ContainerApp --query "registrationState" -o tsv
az provider register --namespace Microsoft.ContainerApp --wait

Troubleshooting

ProblemDiagnosisFix
Auth failureaz account showaz login or check service principal
Permission deniedCheck RBAC (see iam.md)Grant correct role
Provider not registeredError says which provideraz provider register --namespace Microsoft.X
Quota exceededError messageRequest increase in Portal or az quota
Wrong subscriptionaz account showaz account set --subscription X
Wrong regionCheck resource's locationRecreate in correct region
Extension missingaz extension listaz extension add --name NAME
Slow commandsLarge result setUse --query, --top, or --output tsv
# Debug mode
az vm list --debug 2>&1 | head -50

# Full environment info
az version
az account show -o json

Quick Reference

TaskCommand
Loginaz login
Set subscriptionaz account set --subscription "NAME_OR_ID"
Current subscriptionaz account show -o json
List subscriptionsaz account list -o table
Register provideraz provider register --namespace Microsoft.X
List anythingaz RESOURCE list -o json
Show anythingaz RESOURCE show --name NAME -g RG -o json
JSON output-o json
TSV (single values)-o tsv
JMESPath query--query "expression"
Suppress prompts ⚠️--yes — suppresses ALL confirmations
Helpaz RESOURCE --help or az find "search term"
Upgrade CLIaz upgrade

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

pm2

No summary provided by upstream source.

Repository SourceNeeds Review
General

web-search

No summary provided by upstream source.

Repository SourceNeeds Review
General

gcloud

No summary provided by upstream source.

Repository SourceNeeds Review