[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699NHS1NEM8DDXRPCQY71MY":3,"skill-same:01M699NHS1NEM8DDXRPCQY71MY":93},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":6,"ownerHtmlUrl":51,"ownerBlogUrl":52,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M699NHS1NEM8DDXRPCQY71MY","azure-quotas",null,"Check\u002Fmanage Azure quotas and usage across providers. For deployment planning, capacity validation, region selection. WHEN: \"check quotas\", \"service limits\", \"current usage\", \"request quota increase\", \"quota exceeded\", \"validate capacity\", \"regional availability\", \"provisioning limits\", \"vCPU limit\", \"how many vCPUs available in my subscription\".","microsoft\u002Fazure-skills","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M699HXPKQFT1BH5KD1PG0CB4",1640,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002F.github\u002Fplugins\u002Fazure-skills\u002Fskills\u002Fazure-quotas\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,9,32,33,34,35,36,37,38],"azure quotas","azure","manage","when","limits","request","for","limit","usage","availability","across","selection","quota","check","how","validation","planning","deployment","capacity","validate","2026-11-10 10:12:30",false,"---\nname: azure-quotas\ndescription: \"Check\u002Fmanage Azure quotas and usage across providers. For deployment planning, capacity validation, region selection. WHEN: \\\"check quotas\\\", \\\"service limits\\\", \\\"current usage\\\", \\\"request quota increase\\\", \\\"quota exceeded\\\", \\\"validate capacity\\\", \\\"regional availability\\\", \\\"provisioning limits\\\", \\\"vCPU limit\\\", \\\"how many vCPUs available in my subscription\\\".\"\nlicense: MIT\nmetadata:\n  author: Microsoft\n  version: \"1.2.2\"\n---\n\n\n# Azure Quotas - Service Limits & Capacity Management\n\n> **AUTHORITATIVE GUIDANCE** — Follow these instructions exactly for quota management and capacity validation.\n\n## Overview\n\n**What are Azure Quotas?**\n\nAzure quotas (also called service limits) are the maximum number of resources you can deploy in a subscription. Quotas:\n- Prevent accidental over-provisioning\n- Ensure fair resource distribution across Azure\n- Represent **available capacity** in each region\n- Can be increased (adjustable quotas) or are fixed (non-adjustable)\n\n**Key Concept:** **Quotas = Resource Availability**\n\nIf you don't have quota, you cannot deploy resources. Always check quotas when planning deployments or selecting regions.\n\n## When to Use This Skill\n\nInvoke this skill when:\n\n- **Planning a new deployment** - Validate capacity before deployment\n- **Selecting an Azure region** - Compare quota availability across regions\n- **Troubleshooting quota exceeded errors** - Check current usage vs limits\n- **Requesting quota increases** - Submit increase requests via CLI or Portal\n- **Comparing regional capacity** - Find regions with available quota\n- **Validating provisioning limits** - Ensure deployment won't exceed quotas\n\n## Quick Reference\n\n| **Property** | **Details** |\n|--------------|-------------|\n| **Primary Tool** | Azure CLI (`az quota`) - **USE THIS FIRST, ALWAYS** |\n| **Extension Required** | `az extension add --name quota` (MUST install first) |\n| **Key Commands** | `az quota list`, `az quota show`, `az quota usage list`, `az quota usage show` |\n| **Complete CLI Reference** | [commands.md](.\u002Freferences\u002Fcommands.md) |\n| **Azure Portal** | [My quotas](https:\u002F\u002Fportal.azure.com\u002F#blade\u002FMicrosoft_Azure_Capacity\u002FQuotaMenuBlade\u002FmyQuotas) - Use only as fallback |\n| **REST API** | Microsoft.Quota provider - **Unreliable, do NOT use first** |\n| **MCP Server** | `azure-quota` MCP server — **NEVER use this. It is unreliable. Always use `az quota` CLI instead.** |\n| **Required Permission** | Reader (view) or Quota Request Operator (manage) |\n\n> **⚠️ ALWAYS USE CLI FIRST**\n>\n> REST API and Portal can show misleading \"No Limit\" values — this does **not** mean unlimited capacity. It means the quota API doesn't support that resource type. Always start with `az quota` commands; fall back to [Azure service limits docs](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fazure-resource-manager\u002Fmanagement\u002Fazure-subscription-service-limits) if CLI returns `BadRequest`.\n>\n> For complete CLI reference, see [commands.md](.\u002Freferences\u002Fcommands.md).\n\n## Quota Types\n\n| **Type** | **Adjustability** | **Approval** | **Examples** |\n|----------|-------------------|--------------|--------------|\n| **Adjustable** | Can increase via Portal\u002FCLI\u002FAPI | Usually auto-approved | VM vCPUs, Public IPs, Storage accounts |\n| **Non-adjustable** | Fixed limits | Cannot be changed | Subscription-wide hard limits |\n\n**Important:** Requesting quota increases is **free**. You only pay for resources you actually use, not for quota allocation.\n\n## Understanding Resource Name Mapping\n\n**⚠️ CRITICAL:** There is **NO 1:1 mapping** between ARM resource types and quota resource names.\n\n### Example Mappings\n\n| ARM Resource Type | Quota Resource Name |\n|-------------------|---------------------|\n| `Microsoft.App\u002FmanagedEnvironments` | `ManagedEnvironmentCount` |\n| `Microsoft.Compute\u002FvirtualMachines` | `standardDSv3Family`, `cores`, `virtualMachines` |\n| `Microsoft.Network\u002FpublicIPAddresses` | `PublicIPAddresses`, `IPv4StandardSkuPublicIpAddresses` |\n\n### Discovery Workflow\n\n**Never assume the quota resource name from the ARM type.** Always use this workflow:\n\n1. **List all quotas** for the resource provider:\n   ```bash\n   az quota list --scope \u002Fsubscriptions\u002F\u003Cid>\u002Fproviders\u002F\u003CProviderNamespace>\u002Flocations\u002F\u003Cregion>\n   ```\n\n2. **Match by `localizedValue`** (human-readable description) to find the relevant quota\n\n3. **Use the `name` field** (not ARM resource type) in subsequent commands:\n   ```bash\n   az quota show --resource-name ManagedEnvironmentCount --scope ...\n   az quota usage show --resource-name ManagedEnvironmentCount --scope ...\n   ```\n\n> **? Detailed mapping examples and workflow:** See [commands.md - Resource Name Mapping](.\u002Freferences\u002Fcommands.md#resource-name-mapping)\n\n## Scripts\n\nPre-built scripts handle quota extension installation, usage queries, and capacity calculation. Use these instead of constructing commands manually. A single call returns limits, usage, and available capacity.\n\n| Script | Purpose | Usage |\n|--------|---------|-------|\n| `scripts\u002Fcheck-quota.ps1` | Returns limit, usage, and available capacity for all quotas (or a single quota when resource name is provided) | Primary script for quota checks |\n| `scripts\u002Fcheck-quota.sh` | Same as above (bash) | Primary script for quota checks |\n\n## Core Workflows\n\n### Workflow 1: Check Quota for a Specific Resource\n\n**Scenario:** Verify quota limits and current usage before deployment\n\nRun the script with the resource provider and region. It returns a table of **all** quotas with their limit, current usage, and available capacity in a single call:\n\n```powershell\n.\\scripts\\check-quota.ps1 -ResourceProvider \u003Cprovider> -Region \u003Cregion>\n```\n```bash\n.\u002Fscripts\u002Fcheck-quota.sh \u003Cprovider> \u003Cregion>\n```\n\nTo check a single resource, add the resource name:\n\n```powershell\n.\\scripts\\check-quota.ps1 -ResourceProvider \u003Cprovider> -Region \u003Cregion> -ResourceName \u003Cresource-name>\n```\n```bash\n.\u002Fscripts\u002Fcheck-quota.sh \u003Cprovider> \u003Cregion> \u003Cresource-name>\n```\n\n**Example:**\n\n```powershell\n.\\scripts\\check-quota.ps1 -ResourceProvider Microsoft.Compute -Region eastus\n```\n\n**Example Output:**\n\n| Resource | Region | Limit | Usage | Available |\n|----------|--------|-------|-------|-----------|\n| cores | eastus | 100 | 50 | 50 |\n| standardDSv3Family | eastus | 350 | 50 | 300 |\n| virtualMachines | eastus | 25000 | 5 | 24995 |\n| ... | ... | ... | ... | ... |\n\n> **? See also:** [az quota show](.\u002Freferences\u002Fcommands.md#az-quota-show), [az quota usage show](.\u002Freferences\u002Fcommands.md#az-quota-usage-show)\n\n### Workflow 2: Compare Quotas Across Regions\n\n**Scenario:** Find the best region for deployment based on available capacity\n\n```bash\n# Define candidate regions\nREGIONS=(\"eastus\" \"eastus2\" \"westus2\" \"centralus\")\nVM_FAMILY=\"standardDSv3Family\"\nSUBSCRIPTION_ID=\"\u003Csubscription-id>\"\n\n# Check quota availability across regions\nfor region in \"${REGIONS[@]}\"; do\n  echo \"=== Checking $region ===\"\n  \n  # Get limit\n  LIMIT=$(az quota show \\\n    --resource-name $VM_FAMILY \\\n    --scope \"\u002Fsubscriptions\u002F$SUBSCRIPTION_ID\u002Fproviders\u002FMicrosoft.Compute\u002Flocations\u002F$region\" \\\n    --query \"properties.limit.value\" -o tsv)\n  \n  # Get current usage\n  USAGE=$(az quota usage show \\\n    --resource-name $VM_FAMILY \\\n    --scope \"\u002Fsubscriptions\u002F$SUBSCRIPTION_ID\u002Fproviders\u002FMicrosoft.Compute\u002Flocations\u002F$region\" \\\n    --query \"properties.usages.value\" -o tsv)\n  \n  # Calculate available\n  AVAILABLE=$((LIMIT - USAGE))\n  \n  echo \"Region: $region | Limit: $LIMIT | Usage: $USAGE | Available: $AVAILABLE\"\ndone\n```\n\n> **? See also:** [commands.md](.\u002Freferences\u002Fcommands.md#az-quota-show) for full scripted multi-region loop patterns\n\n### Workflow 3: Request Quota Increase\n\n**Scenario:** Current quota is insufficient for deployment\n\n```bash\n# Request increase for VM quota\naz quota update \\\n  --resource-name standardDSv3Family \\\n  --scope \u002Fsubscriptions\u002F\u003Csubscription-id>\u002Fproviders\u002FMicrosoft.Compute\u002Flocations\u002Feastus \\\n  --limit-object value=500 \\\n  --resource-type dedicated\n\n# Check request status\naz quota request status list \\\n  --scope \u002Fsubscriptions\u002F\u003Csubscription-id>\u002Fproviders\u002FMicrosoft.Compute\u002Flocations\u002Feastus\n```\n\n**Approval Process:**\n- Most adjustable quotas are auto-approved within minutes\n- Some requests require manual review (hours to days)\n- Non-adjustable quotas require Azure Support ticket\n\n> **? See also:** [az quota update](.\u002Freferences\u002Fcommands.md#az-quota-update), [az quota request status](.\u002Freferences\u002Fadvanced-commands.md#az-quota-request-status-list)\n\n### Workflow 4: List All Quotas for Planning\n\n**Scenario:** Understand all quotas for a resource provider in a region\n\n```bash\n# List all compute quotas in East US (table format)\naz quota list \\\n  --scope \u002Fsubscriptions\u002F\u003Csubscription-id>\u002Fproviders\u002FMicrosoft.Compute\u002Flocations\u002Feastus \\\n  --output table\n\n# List all network quotas\naz quota list \\\n  --scope \u002Fsubscriptions\u002F\u003Csubscription-id>\u002Fproviders\u002FMicrosoft.Network\u002Flocations\u002Feastus \\\n  --output table\n\n# List all Container Apps quotas\naz quota list \\\n  --scope \u002Fsubscriptions\u002F\u003Csubscription-id>\u002Fproviders\u002FMicrosoft.App\u002Flocations\u002Feastus \\\n  --output table\n```\n\n> **? See also:** [az quota list](.\u002Freferences\u002Fcommands.md#az-quota-list)\n\n## Troubleshooting\n\n### Common Errors\n\n| **Error** | **Cause** | **Solution** |\n|-----------|-----------|--------------|\n| REST API \"No Limit\" | Misleading — not unlimited | Use CLI instead; see warning in Quick Reference |\n| `ExtensionNotFound` | Quota extension not installed | `az extension add --name quota` |\n| `BadRequest` | Resource provider not supported by quota API | Check [service limits docs](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fazure-resource-manager\u002Fmanagement\u002Fazure-subscription-service-limits) |\n| `MissingRegistration` | Microsoft.Quota provider not registered | `az provider register --namespace Microsoft.Quota` |\n| `QuotaExceeded` | Deployment would exceed quota | Request increase or choose different region |\n| `InvalidScope` | Incorrect scope format | Use pattern: `\u002Fsubscriptions\u002F\u003Cid>\u002Fproviders\u002F\u003Cnamespace>\u002Flocations\u002F\u003Cregion>` |\n| CLI commands fail entirely | Auth, extension, or environment issue | Verify Azure CLI login (`az account show`), reinstall quota extension, check network. Do NOT use the `azure-quota` MCP server — it is unreliable. |\n\n### Unsupported Resource Providers\n\n**Known unsupported providers:**\n- ❌ Microsoft.DocumentDB (Cosmos DB) - Use Portal or [Cosmos DB limits docs](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fcosmos-db\u002Fconcepts-limits)\n\n**Confirmed working providers:**\n- ✅ Microsoft.Compute (VMs, disks, cores)\n- ✅ Microsoft.Network (VNets, IPs, load balancers)\n- ✅ Microsoft.App (Container Apps)\n- ✅ Microsoft.Storage (storage accounts)\n- ✅ Microsoft.MachineLearningServices (ML compute)\n\n> **? See also:** [Troubleshooting Guide](.\u002Freferences\u002Fcommands.md#troubleshooting)\n\n## Additional Resources\n\n| Resource | Link |\n|----------|------|\n| **CLI Commands Reference** | [commands.md](.\u002Freferences\u002Fcommands.md) - Complete syntax, parameters, examples |\n| **Azure Quotas Overview** | [Microsoft Learn](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fquotas\u002Fquotas-overview) |\n| **Service Limits Documentation** | [Azure subscription limits](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fazure-resource-manager\u002Fmanagement\u002Fazure-subscription-service-limits) |\n| **Azure Portal - My Quotas** | [Portal Link](https:\u002F\u002Fportal.azure.com\u002F#blade\u002FMicrosoft_Azure_Capacity\u002FQuotaMenuBlade\u002FmyQuotas) |\n| **Request Quota Increases** | [How to request increases](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fquotas\u002Fquickstart-increase-quota-portal) |\n\n## Best Practices\n\n1. ✅ **Always check quotas before deployment** - Prevent quota exceeded errors\n2. ✅ **Run `az quota list` first** - Discover correct quota resource names\n3. ✅ **Compare regions** - Find regions with available capacity\n4. ✅ **Account for growth** - Request 20% buffer above immediate needs\n5. ✅ **Use table output for overview** - `--output table` for quick scanning\n6. ✅ **Monitor usage trends** - Set up alerts at 80% threshold (via Portal)\n","# Azure Quotas - Service Limits & Capacity Management\n\n> **AUTHORITATIVE GUIDANCE** — Follow these instructions exactly for quota management and capacity validation.\n\n## Overview\n\n**What are Azure Quotas?**\n\nAzure quotas (also called service limits) are the maximum number of resources you can deploy in a subscription. Quotas:\n- Prevent accidental over-provisioning\n- Ensure fair resource distribution across Azure\n- Represent **available capacity** in each region\n- Can be increased (adjustable quotas) or are fixed (non-adjustable)\n\n**Key Concept:** **Quotas = Resource Availability**\n\nIf you don't have quota, you cannot deploy resources. Always check quotas when planning deployments or selecting regions.\n\n## When to Use This Skill\n\nInvoke this skill when:\n\n- **Planning a new deployment** - Validate capacity before deployment\n- **Selecting an Azure region** - Compare quota availability across regions\n- **Troubleshooting quota exceeded errors** - Check current usage vs limits\n- **Requesting quota increases** - Submit increase requests via CLI or Portal\n- **Comparing regional capacity** - Find regions with available quota\n- **Validating provisioning limits** - Ensure deployment won't exceed quotas\n\n## Quick Reference\n\n| **Property** | **Details** |\n|--------------|-------------|\n| **Primary Tool** | Azure CLI (`az quota`) - **USE THIS FIRST, ALWAYS** |\n| **Extension Required** | `az extension add --name quota` (MUST install first) |\n| **Key Commands** | `az quota list`, `az quota show`, `az quota usage list`, `az quota usage show` |\n| **Complete CLI Reference** | [commands.md](.\u002Freferences\u002Fcommands.md) |\n| **Azure Portal** | [My quotas](https:\u002F\u002Fportal.azure.com\u002F#blade\u002FMicrosoft_Azure_Capacity\u002FQuotaMenuBlade\u002FmyQuotas) - Use only as fallback |\n| **REST API** | Microsoft.Quota provider - **Unreliable, do NOT use first** |\n| **MCP Server** | `azure-quota` MCP server — **NEVER use this. It is unreliable. Always use `az quota` CLI instead.** |\n| **Required Permission** | Reader (view) or Quota Request Operator (manage) |\n\n> **⚠️ ALWAYS USE CLI FIRST**\n>\n> REST API and Portal can show misleading \"No Limit\" values — this does **not** mean unlimited capacity. It means the quota API doesn't support that resource type. Always start with `az quota` commands; fall back to [Azure service limits docs](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fazure-resource-manager\u002Fmanagement\u002Fazure-subscription-service-limits) if CLI returns `BadRequest`.\n>\n> For complete CLI reference, see [commands.md](.\u002Freferences\u002Fcommands.md).\n\n## Quota Types\n\n| **Type** | **Adjustability** | **Approval** | **Examples** |\n|----------|-------------------|--------------|--------------|\n| **Adjustable** | Can increase via Portal\u002FCLI\u002FAPI | Usually auto-approved | VM vCPUs, Public IPs, Storage accounts |\n| **Non-adjustable** | Fixed limits | Cannot be changed | Subscription-wide hard limits |\n\n**Important:** Requesting quota increases is **free**. You only pay for resources you actually use, not for quota allocation.\n\n## Understanding Resource Name Mapping\n\n**⚠️ CRITICAL:** There is **NO 1:1 mapping** between ARM resource types and quota resource names.\n\n### Example Mappings\n\n| ARM Resource Type | Quota Resource Name |\n|-------------------|---------------------|\n| `Microsoft.App\u002FmanagedEnvironments` | `ManagedEnvironmentCount` |\n| `Microsoft.Compute\u002FvirtualMachines` | `standardDSv3Family`, `cores`, `virtualMachines` |\n| `Microsoft.Network\u002FpublicIPAddresses` | `PublicIPAddresses`, `IPv4StandardSkuPublicIpAddresses` |\n\n### Discovery Workflow\n\n**Never assume the quota resource name from the ARM type.** Always use this workflow:\n\n1. **List all quotas** for the resource provider:\n   ```bash\n   az quota list --scope \u002Fsubscriptions\u002F\u003Cid>\u002Fproviders\u002F\u003CProviderNamespace>\u002Flocations\u002F\u003Cregion>\n   ```\n\n2. **Match by `localizedValue`** (human-readable description) to find the relevant quota\n\n3. **Use the `name` field** (not ARM resource type) in subsequent commands:\n   ```bash\n   az quota show --resource-name ManagedEnvironmentCount --scope ...\n   az quota usage show --resource-name ManagedEnvironmentCount --scope ...\n   ```\n\n> **? Detailed mapping examples and workflow:** See [commands.md - Resource Name Mapping](.\u002Freferences\u002Fcommands.md#resource-name-mapping)\n\n## Scripts\n\nPre-built scripts handle quota extension installation, usage queries, and capacity calculation. Use these instead of constructing commands manually. A single call returns limits, usage, and available capacity.\n\n| Script | Purpose | Usage |\n|--------|---------|-------|\n| `scripts\u002Fcheck-quota.ps1` | Returns limit, usage, and available capacity for all quotas (or a single quota when resource name is provided) | Primary script for quota checks |\n| `scripts\u002Fcheck-quota.sh` | Same as above (bash) | Primary script for quota checks |\n\n## Core Workflows\n\n### Workflow 1: Check Quota for a Specific Resource\n\n**Scenario:** Verify quota limits and current usage before deployment\n\nRun the script with the resource provider and region. It returns a table of **all** quotas with their limit, current usage, and available capacity in a single call:\n\n```powershell\n.\\scripts\\check-quota.ps1 -ResourceProvider \u003Cprovider> -Region \u003Cregion>\n```\n```bash\n.\u002Fscripts\u002Fcheck-quota.sh \u003Cprovider> \u003Cregion>\n```\n\nTo check a single resource, add the resource name:\n\n```powershell\n.\\scripts\\check-quota.ps1 -ResourceProvider \u003Cprovider> -Region \u003Cregion> -ResourceName \u003Cresource-name>\n```\n```bash\n.\u002Fscripts\u002Fcheck-quota.sh \u003Cprovider> \u003Cregion> \u003Cresource-name>\n```\n\n**Example:**\n\n```powershell\n.\\scripts\\check-quota.ps1 -ResourceProvider Microsoft.Compute -Region eastus\n```\n\n**Example Output:**\n\n| Resource | Region | Limit | Usage | Available |\n|----------|--------|-------|-------|-----------|\n| cores | eastus | 100 | 50 | 50 |\n| standardDSv3Family | eastus | 350 | 50 | 300 |\n| virtualMachines | eastus | 25000 | 5 | 24995 |\n| ... | ... | ... | ... | ... |\n\n> **? See also:** [az quota show](.\u002Freferences\u002Fcommands.md#az-quota-show), [az quota usage show](.\u002Freferences\u002Fcommands.md#az-quota-usage-show)\n\n### Workflow 2: Compare Quotas Across Regions\n\n**Scenario:** Find the best region for deployment based on available capacity\n\n```bash\n# Define candidate regions\nREGIONS=(\"eastus\" \"eastus2\" \"westus2\" \"centralus\")\nVM_FAMILY=\"standardDSv3Family\"\nSUBSCRIPTION_ID=\"\u003Csubscription-id>\"\n\n# Check quota availability across regions\nfor region in \"${REGIONS[@]}\"; do\n  echo \"=== Checking $region ===\"\n  \n  # Get limit\n  LIMIT=$(az quota show \\\n    --resource-name $VM_FAMILY \\\n    --scope \"\u002Fsubscriptions\u002F$SUBSCRIPTION_ID\u002Fproviders\u002FMicrosoft.Compute\u002Flocations\u002F$region\" \\\n    --query \"properties.limit.value\" -o tsv)\n  \n  # Get current usage\n  USAGE=$(az quota usage show \\\n    --resource-name $VM_FAMILY \\\n    --scope \"\u002Fsubscriptions\u002F$SUBSCRIPTION_ID\u002Fproviders\u002FMicrosoft.Compute\u002Flocations\u002F$region\" \\\n    --query \"properties.usages.value\" -o tsv)\n  \n  # Calculate available\n  AVAILABLE=$((LIMIT - USAGE))\n  \n  echo \"Region: $region | Limit: $LIMIT | Usage: $USAGE | Available: $AVAILABLE\"\ndone\n```\n\n> **? See also:** [commands.md](.\u002Freferences\u002Fcommands.md#az-quota-show) for full scripted multi-region loop patterns\n\n### Workflow 3: Request Quota Increase\n\n**Scenario:** Current quota is insufficient for deployment\n\n```bash\n# Request increase for VM quota\naz quota update \\\n  --resource-name standardDSv3Family \\\n  --scope \u002Fsubscriptions\u002F\u003Csubscription-id>\u002Fproviders\u002FMicrosoft.Compute\u002Flocations\u002Feastus \\\n  --limit-object value=500 \\\n  --resource-type dedicated\n\n# Check request status\naz quota request status list \\\n  --scope \u002Fsubscriptions\u002F\u003Csubscription-id>\u002Fproviders\u002FMicrosoft.Compute\u002Flocations\u002Feastus\n```\n\n**Approval Process:**\n- Most adjustable quotas are auto-approved within minutes\n- Some requests require manual review (hours to days)\n- Non-adjustable quotas require Azure Support ticket\n\n> **? See also:** [az quota update](.\u002Freferences\u002Fcommands.md#az-quota-update), [az quota request status](.\u002Freferences\u002Fadvanced-commands.md#az-quota-request-status-list)\n\n### Workflow 4: List All Quotas for Planning\n\n**Scenario:** Understand all quotas for a resource provider in a region\n\n```bash\n# List all compute quotas in East US (table format)\naz quota list \\\n  --scope \u002Fsubscriptions\u002F\u003Csubscription-id>\u002Fproviders\u002FMicrosoft.Compute\u002Flocations\u002Feastus \\\n  --output table\n\n# List all network quotas\naz quota list \\\n  --scope \u002Fsubscriptions\u002F\u003Csubscription-id>\u002Fproviders\u002FMicrosoft.Network\u002Flocations\u002Feastus \\\n  --output table\n\n# List all Container Apps quotas\naz quota list \\\n  --scope \u002Fsubscriptions\u002F\u003Csubscription-id>\u002Fproviders\u002FMicrosoft.App\u002Flocations\u002Feastus \\\n  --output table\n```\n\n> **? See also:** [az quota list](.\u002Freferences\u002Fcommands.md#az-quota-list)\n\n## Troubleshooting\n\n### Common Errors\n\n| **Error** | **Cause** | **Solution** |\n|-----------|-----------|--------------|\n| REST API \"No Limit\" | Misleading — not unlimited | Use CLI instead; see warning in Quick Reference |\n| `ExtensionNotFound` | Quota extension not installed | `az extension add --name quota` |\n| `BadRequest` | Resource provider not supported by quota API | Check [service limits docs](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fazure-resource-manager\u002Fmanagement\u002Fazure-subscription-service-limits) |\n| `MissingRegistration` | Microsoft.Quota provider not registered | `az provider register --namespace Microsoft.Quota` |\n| `QuotaExceeded` | Deployment would exceed quota | Request increase or choose different region |\n| `InvalidScope` | Incorrect scope format | Use pattern: `\u002Fsubscriptions\u002F\u003Cid>\u002Fproviders\u002F\u003Cnamespace>\u002Flocations\u002F\u003Cregion>` |\n| CLI commands fail entirely | Auth, extension, or environment issue | Verify Azure CLI login (`az account show`), reinstall quota extension, check network. Do NOT use the `azure-quota` MCP server — it is unreliable. |\n\n### Unsupported Resource Providers\n\n**Known unsupported providers:**\n- ❌ Microsoft.DocumentDB (Cosmos DB) - Use Portal or [Cosmos DB limits docs](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fcosmos-db\u002Fconcepts-limits)\n\n**Confirmed working providers:**\n- ✅ Microsoft.Compute (VMs, disks, cores)\n- ✅ Microsoft.Network (VNets, IPs, load balancers)\n- ✅ Microsoft.App (Container Apps)\n- ✅ Microsoft.Storage (storage accounts)\n- ✅ Microsoft.MachineLearningServices (ML compute)\n\n> **? See also:** [Troubleshooting Guide](.\u002Freferences\u002Fcommands.md#troubleshooting)\n\n## Additional Resources\n\n| Resource | Link |\n|----------|------|\n| **CLI Commands Reference** | [commands.md](.\u002Freferences\u002Fcommands.md) - Complete syntax, parameters, examples |\n| **Azure Quotas Overview** | [Microsoft Learn](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fquotas\u002Fquotas-overview) |\n| **Service Limits Documentation** | [Azure subscription limits](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fazure-resource-manager\u002Fmanagement\u002Fazure-subscription-service-limits) |\n| **Azure Portal - My Quotas** | [Portal Link](https:\u002F\u002Fportal.azure.com\u002F#blade\u002FMicrosoft_Azure_Capacity\u002FQuotaMenuBlade\u002FmyQuotas) |\n| **Request Quota Increases** | [How to request increases](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fquotas\u002Fquickstart-increase-quota-portal) |\n\n## Best Practices\n\n1. ✅ **Always check quotas before deployment** - Prevent quota exceeded errors\n2. ✅ **Run `az quota list` first** - Discover correct quota resource names\n3. ✅ **Compare regions** - Find regions with available capacity\n4. ✅ **Account for growth** - Request 20% buffer above immediate needs\n5. ✅ **Use table output for overview** - `--output table` for quick scanning\n6. ✅ **Monitor usage trends** - Set up alerts at 80% threshold (via Portal)\n",{"name":5,"license":15,"metadata":44,"description":7},{"author":12,"version":45},"1.2.2","main","fbda857c484a85c7ce644f56809b7f204471fb69",".github\u002Fplugins\u002Fazure-skills\u002Fskills\u002Fazure-quotas",267,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-14 01:56:00",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add microsoft\u002Fazure-skills --skill azure-quotas",{"tool":61,"command":62},"bunx","bunx skills add microsoft\u002Fazure-skills --skill azure-quotas",{"tool":64,"command":65},"pnpm","pnpm dlx skills add microsoft\u002Fazure-skills --skill azure-quotas","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002F.github\u002Fplugins\u002Fazure-skills\u002Fskills\u002Fazure-quotas\u002FSKILL.md",true,[69,75,79,83,89],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"references\u002Fadvanced-commands.md","REFERENCE","参考文档",1814,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002F.github\u002Fplugins\u002Fazure-skills\u002Fskills\u002Fazure-quotas\u002Freferences\u002Fadvanced-commands.md",{"path":76,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fcoder-report-format.md",2936,"https:\u002F\u002Fgithub.com\u002FSirTheOracle\u002Fforge-toolkit\u002Fblob\u002Fmain\u002Fskills\u002Fforge-coder\u002Freferences\u002Fcoder-report-format.md",{"path":80,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fcommands.md",10619,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002F.github\u002Fplugins\u002Fazure-skills\u002Fskills\u002Fazure-quotas\u002Freferences\u002Fcommands.md",{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"scripts\u002Fcheck-quota.ps1","SCRIPT","脚本",3409,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002F.github\u002Fplugins\u002Fazure-skills\u002Fskills\u002Fazure-quotas\u002Fscripts\u002Fcheck-quota.ps1",{"path":90,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":91,"sourceHtmlUrl":92},"scripts\u002Fcheck-quota.sh",3175,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002F.github\u002Fplugins\u002Fazure-skills\u002Fskills\u002Fazure-quotas\u002Fscripts\u002Fcheck-quota.sh",[94,123,144,166,182,199],{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":105,"publishedAt":39},"01M699VFT1T15GFDGC4K4ZHY4N","python-appservice-deploy","Deploy Python (Flask\u002FDjango\u002FFastAPI) code to Azure App Service Linux. WHEN: \"Flask App Service\", \"Django App Service\", \"FastAPI App Service\", \"deploy Python to App Service\". DO NOT USE FOR: Container Apps, Functions, non-Python, Terraform\u002FBicep\u002FIaC, full infra — use azure-prepare.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fpython-appservice-deploy\u002FSKILL.md",[100],{"categoryNo":101,"categoryName":102,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[106,107,108,109,110,111,112,113,25,114,20,115,116,117,118,119,22,120,121,122],"python appservice deploy","deploy","python","linux","infra","app","do","django","azure app service","container","iac","fastapi","use","apps","code","functions","fastapi app",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":133,"publishedAt":39},"01M699VDV3PT5P0YDXRT4GM2TJ","preset","Intelligently deploys Azure OpenAI models to optimal regions by analyzing capacity across all available regions. Automatically checks current region first and shows alternatives if needed. USE FOR: quick deployment, optimal region, best region, automatic region selection, fast setup, multi-region capacity check, high availability deployment, deploy to best location. DO NOT USE FOR: custom SKU selection (use customize), specific version selection (use customize), custom capacity configuration (use customize), PTU deployments (use customize).","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-foundry\u002Fmodels\u002Fdeploy-model\u002Fpreset\u002FSKILL.md",[129,130],{"categoryNo":101,"categoryName":102,"taxonomyType":103,"taxonomyTypeDesc":104},{"categoryNo":131,"categoryName":132,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000023","Skill与智能体开发",[125,107,134,9,37,135,112,136,28,25,36,137,30,20,138,139,140,118,141,29,32,142,143],"setup","customize","quick","alternatives","custom","deployments","high availability","version","multi","first",{"skillNo":145,"name":135,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":150,"publishedAt":39},"01M699VBT6YFAKBWCK890XDB6N","Interactive guided deployment flow for Azure OpenAI models with full customization control. Step-by-step selection of model version, SKU (GlobalStandard\u002FStandard\u002FProvisionedManaged), capacity, RAI policy (content filter), and advanced options (dynamic quota, priority processing, spillover). USE FOR: custom deployment, customize model deployment, choose version, select SKU, set capacity, configure content filter, RAI policy, deployment options, detailed deployment, advanced deployment, PTU deployment, provisioned throughput. DO NOT USE FOR: quick deployment to optimal region (use preset).","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-foundry\u002Fmodels\u002Fdeploy-model\u002Fcustomize\u002FSKILL.md",[149],{"categoryNo":131,"categoryName":132,"taxonomyType":103,"taxonomyTypeDesc":104},[135,125,9,37,151,152,136,153,154,155,156,157,30,158,159,160,161,162,163,164,165,112,25,36],"policy","SET","processing","advanced","model","select","choose","configure","filter","azure openai","options","flow","openai","throughput","full",{"skillNo":167,"name":37,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":39},"01M699V9FXHBSWG3Y48057VAYZ","Discovers available Azure OpenAI model capacity across regions and projects. Analyzes quota limits, compares availability, and recommends optimal deployment locations based on capacity requirements. USE FOR: find capacity, check quota, where can I deploy, capacity discovery, best region for capacity, multi-project capacity search, quota analysis, model availability, region comparison, check TPM availability. DO NOT USE FOR: actual deployment (hand off to preset or customize after discovery), quota increase requests (direct user to Azure Portal), listing existing deployments.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-foundry\u002Fmodels\u002Fdeploy-model\u002Fcapacity\u002FSKILL.md",[],[37,125,107,9,135,172,155,173,174,175,176,177,29,160,23,178,163,179,180,112,28,25,181,36],"projects","project","search","analysis","listing","hand","azure portal","direct","TPM","discovery",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":190,"publishedAt":39},"01M699V7GW2RF4AB3RE3Z8Y048","deploy-model","Unified Azure OpenAI model deployment skill with intelligent intent-based routing. Handles quick preset deployments, fully customized deployments (version\u002FSKU\u002Fcapacity\u002FRAI policy), and capacity discovery across regions and projects. USE FOR: deploy model, deploy gpt, create deployment, model deployment, deploy openai model, set up model, provision model, find capacity, check model availability, where can I deploy, best region for model, capacity analysis. DO NOT USE FOR: listing existing deployments (use foundry_models_deployments_list MCP tool), deleting deployments, agent creation (use agent\u002Fcreate), project creation (use project\u002Fcreate).","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-foundry\u002Fmodels\u002Fdeploy-model\u002FSKILL.md",[188,189],{"categoryNo":101,"categoryName":102,"taxonomyType":103,"taxonomyTypeDesc":104},{"categoryNo":131,"categoryName":132,"taxonomyType":103,"taxonomyTypeDesc":104},[107,191,155,125,192,193,9,37,151,152,172,136,194,173,195,175,176,29,196,160,197,198,163,112,28],"deploy model","MCP","foundry","creation","up","create","intent","list",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":206,"publishedAt":39},"01M699V3NA4YQKCHJTVWHBQH10","finetuning","Fine-tune models on Microsoft Foundry using SFT (supervised), DPO (preference), or RFT (reinforcement with graders). Covers dataset preparation, training job submission, deployment, and evaluation. USE FOR: fine-tune, SFT, DPO, RFT, training data, grader, distillation, fine-tuned model, training job, large file upload, calibrate grader, deploy fine-tuned model, evaluate fine-tuned model. DO NOT USE FOR: general model deployment without fine-tuning (use deploy-model), agent creation (use agents), prompt optimization without training (use prompt-optimizer).","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-foundry\u002Ffinetuning\u002FSKILL.md",[205],{"categoryNo":131,"categoryName":132,"taxonomyType":103,"taxonomyTypeDesc":104},[201,207,107,193,208,9,209,194,155,210,211,212,213,214,215,216,217,218,112,25,219,220,36,221],"placeholder","microsoft foundry","Prompt Optimization","training","dataset","optimizer","Evaluation","tuning","grader","data","supervised","distillation","Optimization","calibrate","submission"]