Azure Specialist
Structured investigation for Azure workloads. Five phases: gather context,
diagnose, design, recommend, verify.
Arguments
$0 — subscription context, service scope, or problem description. Required.
Phase 1: Context Gathering
- Identify the tenant, subscription(s), resource group(s), and services in scope.
- Glob for IaC in the working directory:
**/*.bicep, **/azuredeploy.json, **/main.tf, **/*.parameters.json.
- If Azure CLI access is available:
az account show
az group list --query "[].name"
- Note which resource providers are registered:
az provider list --query "[?registrationState=='Registered'].namespace" -o tsv
Phase 2: Diagnosis
Compute / containers:
az vm list --query "[].{name:name,rg:resourceGroup,state:powerState}" -o table
az aks list --query "[].{name:name,rg:resourceGroup,version:kubernetesVersion}" -o table
az webapp list --query "[].{name:name,rg:resourceGroup,state:state}" -o table
Identity / RBAC:
az role assignment list --assignee <principal-id> --all
az ad app list --display-name <name>
az identity list --resource-group <rg>
Networking:
az network vnet list
az network nsg rule list --nsg-name <nsg> --resource-group <rg>
az network private-endpoint list
Serverless / events:
az functionapp list
az servicebus namespace list
az eventgrid topic list
Cost / quotas:
az consumption usage list --start-date <> --end-date <>
az vm list-usage --location <region>
Phase 3: Design / Root-Cause Analysis
Map symptoms to causes:
| Symptom |
Common Causes |
Check |
| AKS pod AuthN fails |
Managed Identity not assigned, missing federated credential |
az aks show --query identity + pod ServiceAccount annotations |
| App Service slow |
Cold start on consumption plan, misconfigured scale rules |
Plan tier, autoscale settings |
| Storage 403 |
Private endpoint with wrong DNS, firewall IP allowlist |
az storage account network-rule list |
| Function cold starts |
Consumption plan + infrequent traffic |
Switch to Premium or Always-Ready instances |
| Cosmos DB throttle (429) |
RU/s too low, hot partition |
Diagnostic settings, metrics, partition key review |
| EntraID app login fails |
Redirect URI mismatch, missing API permission grant |
az ad app show + consent status |
Cite resource ID or file:line for every finding.
Phase 4: Recommendations
Output findings in priority order:
[CRITICAL] <title>
Resource: <resource ID or file:line>
Issue: <one sentence>
Evidence: <CLI output or code snippet>
Fix: <specific change, with Bicep/ARM/Terraform diff>
Trade-off: <alternative and its downside, if meaningful>
- Order: CRITICAL → WARNING → INFO.
- For IaC fixes, show the exact Bicep/ARM/Terraform diff.
- Reference relevant docs in
references/ where applicable.
Phase 5: Verification
After fixes are applied:
- Re-run the diagnostic command that surfaced the issue.
- For RBAC/Managed Identity changes: verify with
az role assignment list and a live workload token request.
- For network changes:
az network watcher test-connectivity or NSG flow-log review.
- For Bicep/ARM deployments: run
what-if before and after to confirm intended drift only.
- Check Azure Monitor metrics and Service Health — no new alerts should be firing.
Reference Docs
Consult references/ for decision guides:
| File |
When to use |
compute.md |
AKS, ACI, VMs, App Service |
serverless.md |
Functions, Logic Apps, Service Bus, Event Grid |
storage.md |
Blob, Files, Queues, Cosmos DB, Azure SQL |
networking.md |
VNet, App Gateway, Front Door, Private Endpoints |
identity.md |
EntraID, Managed Identity, RBAC scopes |
devops.md |
Azure Pipelines, ACR, release management |
iac-patterns.md |
Bicep, ARM, Terraform (AzureRM/azapi) patterns |
1---2name: azure-specialist3description: Deep-dive Azure architecture review, debugging, and service design. Use for structured investigations of Azure-specific issues, identity or cost audits, and multi-service design reviews. Triggers on: "Azure audit", "Azure design review", "EntraID review", "Managed Identity debug", "review my Azure", "Azure troubleshooting", "AKS deep-dive".4---56# Azure Specialist78Structured investigation for Azure workloads. Five phases: gather context,9diagnose, design, recommend, verify.1011## Arguments1213- `$0` — subscription context, service scope, or problem description. Required.1415---1617## Phase 1: Context Gathering18191. Identify the tenant, subscription(s), resource group(s), and services in scope.202. Glob for IaC in the working directory: `**/*.bicep`, `**/azuredeploy.json`, `**/main.tf`, `**/*.parameters.json`.213. If Azure CLI access is available:22 ```bash23 az account show24 az group list --query "[].name"25 ```264. Note which resource providers are registered:27 ```bash28 az provider list --query "[?registrationState=='Registered'].namespace" -o tsv29 ```3031---3233## Phase 2: Diagnosis3435**Compute / containers:**3637```bash38az vm list --query "[].{name:name,rg:resourceGroup,state:powerState}" -o table39az aks list --query "[].{name:name,rg:resourceGroup,version:kubernetesVersion}" -o table40az webapp list --query "[].{name:name,rg:resourceGroup,state:state}" -o table41```4243**Identity / RBAC:**4445```bash46az role assignment list --assignee <principal-id> --all47az ad app list --display-name <name>48az identity list --resource-group <rg>49```5051**Networking:**5253```bash54az network vnet list55az network nsg rule list --nsg-name <nsg> --resource-group <rg>56az network private-endpoint list57```5859**Serverless / events:**6061```bash62az functionapp list63az servicebus namespace list64az eventgrid topic list65```6667**Cost / quotas:**6869```bash70az consumption usage list --start-date <> --end-date <>71az vm list-usage --location <region>72```7374---7576## Phase 3: Design / Root-Cause Analysis7778Map symptoms to causes:7980| Symptom | Common Causes | Check |81| ------------------------ | ----------------------------------------------------------- | --------------------------------------------------------------- |82| AKS pod AuthN fails | Managed Identity not assigned, missing federated credential | `az aks show --query identity` + pod ServiceAccount annotations |83| App Service slow | Cold start on consumption plan, misconfigured scale rules | Plan tier, autoscale settings |84| Storage 403 | Private endpoint with wrong DNS, firewall IP allowlist | `az storage account network-rule list` |85| Function cold starts | Consumption plan + infrequent traffic | Switch to Premium or Always-Ready instances |86| Cosmos DB throttle (429) | RU/s too low, hot partition | Diagnostic settings, metrics, partition key review |87| EntraID app login fails | Redirect URI mismatch, missing API permission grant | `az ad app show` + consent status |8889Cite resource ID or `file:line` for every finding.9091---9293## Phase 4: Recommendations9495Output findings in priority order:9697```98[CRITICAL] <title>99Resource: <resource ID or file:line>100Issue: <one sentence>101Evidence: <CLI output or code snippet>102Fix: <specific change, with Bicep/ARM/Terraform diff>103Trade-off: <alternative and its downside, if meaningful>104```105106- Order: CRITICAL → WARNING → INFO.107- For IaC fixes, show the exact Bicep/ARM/Terraform diff.108- Reference relevant docs in `references/` where applicable.109110---111112## Phase 5: Verification113114After fixes are applied:1151161. Re-run the diagnostic command that surfaced the issue.1172. For RBAC/Managed Identity changes: verify with `az role assignment list` and a live workload token request.1183. For network changes: `az network watcher test-connectivity` or NSG flow-log review.1194. For Bicep/ARM deployments: run `what-if` before and after to confirm intended drift only.1205. Check Azure Monitor metrics and Service Health — no new alerts should be firing.121122---123124## Reference Docs125126Consult `references/` for decision guides:127128| File | When to use |129| ----------------- | ------------------------------------------------ |130| `compute.md` | AKS, ACI, VMs, App Service |131| `serverless.md` | Functions, Logic Apps, Service Bus, Event Grid |132| `storage.md` | Blob, Files, Queues, Cosmos DB, Azure SQL |133| `networking.md` | VNet, App Gateway, Front Door, Private Endpoints |134| `identity.md` | EntraID, Managed Identity, RBAC scopes |135| `devops.md` | Azure Pipelines, ACR, release management |136| `iac-patterns.md` | Bicep, ARM, Terraform (AzureRM/azapi) patterns |