Chargement
Chargement
Skills
Check/manage 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\".
À propos de cette ressource
--- name: azure-quotas description: "Check/manage 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\"." license: MIT metadata: author: Microsoft version: "1.1.2" ---
AUTHORITATIVE GUIDANCE — Follow these instructions exactly for quota management and capacity validation.
What are Azure Quotas?
Azure quotas (also called service limits) are the maximum number of resources you can deploy in a subscription. Quotas:
Key Concept: Quotas = Resource Availability
If you don't have quota, you cannot deploy resources. Always check quotas when planning deployments or selecting regions.
Invoke this skill when:
| Property | Details | |--------------|-------------| | Primary Tool | Azure CLI (az quota) - USE THIS FIRST, ALWAYS | | Extension Required | az extension add --name quota (MUST install first) | | Key Commands | az quota list, az quota show, az quota usage list, az quota usage show | | Complete CLI Reference | commands.md | | Azure Portal | My quotas - Use only as fallback | | REST API | Microsoft.Quota provider - Unreliable, do NOT use first | | MCP Server | azure-quota MCP server — NEVER use this. It is unreliable. Always use `az quota` CLI instead. | | Required Permission | Reader (view) or Quota Request Operator (manage) |
⚠️ ALWAYS USE CLI FIRST 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 withaz quotacommands; fall back to Azure service limits docs if CLI returnsBadRequest. For complete CLI reference, see commands.md.
| Type | Adjustability | Approval | Examples | |----------|-------------------|--------------|--------------| | Adjustable | Can increase via Portal/CLI/API | Usually auto-approved | VM vCPUs, Public IPs, Storage accounts | | Non-adjustable | Fixed limits | Cannot be changed | Subscription-wide hard limits |
Important: Requesting quota increases is free. You only pay for resources you actually use, not for quota allocation.
⚠️ CRITICAL: There is NO 1:1 mapping between ARM resource types and quota resource names.
| ARM Resource Type | Quota Resource Name | |-------------------|---------------------| | Microsoft.App/managedEnvironments | ManagedEnvironmentCount | | Microsoft.Compute/virtualMachines | standardDSv3Family, cores, virtualMachines | | Microsoft.Network/publicIPAddresses | PublicIPAddresses, IPv4StandardSkuPublicIpAddresses |
Never assume the quota resource name from the ARM type. Always use this workflow:
``bash az quota list --scope /subscriptions/<id>/providers/<ProviderNamespace>/locations/<region> ``
``bash az quota show --resource-name ManagedEnvironmentCount --scope ... az quota usage show --resource-name ManagedEnvironmentCount --scope ... ``
📖 Detailed mapping examples and workflow: See commands.md - Resource Name Mapping
Pre-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.
| Script | Purpose | Usage | |--------|---------|-------| | scripts/check-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 | | scripts/check-quota.sh | Same as above (bash) | Primary script for quota checks |
Scenario: Verify quota limits and current usage before deployment
Run 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:
``powershell .\scripts\check-quota.ps1 -ResourceProvider <provider> -Region <region> ` `bash ./scripts/check-quota.sh <provider> <region> ``
To check a single resource, add the resource name:
``powershell .\scripts\check-quota.ps1 -ResourceProvider <provider> -Region <region> -ResourceName <resource-name> ` `bash ./scripts/check-quota.sh <provider> <region> <resource-name> ``
Example:
``powershell .\scripts\check-quota.ps1 -ResourceProvider Microsoft.Compute -Region eastus ``
Example Output:
| Resource | Region | Limit | Usage | Available | |----------|--------|-------|-------|-----------| | cores | eastus | 100 | 50 | 50 | | standardDSv3Family | eastus | 350 | 50 | 300 | | virtualMachines | eastus | 25000 | 5 | 24995 | | ... | ... | ... | ... | ... |
📖 See also: az quota show, az quota usage show
Scenario: Find the best region for deployment based on available capacity
```bash
REGIONS=("eastus" "eastus2" "westus2" "centralus") VM_FAMILY="standardDSv3Family" SUBSCRIPTION_ID="<subscription-id>"
for region in "${REGIONS[@]}"; do echo "=== Checking $region ==="
LIMIT=$(az quota show \ --resource-name $VM_FAMILY \ --scope "/subscriptions/$SUBSCRIPTION_ID/providers/Microsoft.Compute/locations/$region" \ --query "properties.limit.value" -o tsv)
USAGE=$(az quota usage show \ --resource-name $VM_FAMILY \ --scope "/subscriptions/$SUBSCRIPTION_ID/providers/Microsoft.Compute/locations/$region" \ --query "properties.usages.value" -o tsv)
AVAILABLE=$((LIMIT - USAGE))
echo "Region: $region | Limit: $LIMIT | Usage: $USAGE | Available: $AVAILABLE" done ```
📖 See also: commands.md for full scripted multi-region loop patterns
Scenario: Current quota is insufficient for deployment
```bash
az quota update \ --resource-name standardDSv3Family \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus \ --limit-object value=500 \ --resource-type dedicated
az quota request status list \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus ```
Approval Process:
📖 See also: az quota update, az quota request status
Scenario: Understand all quotas for a resource provider in a region
```bash
az quota list \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus \ --output table
az quota list \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Network/locations/eastus \ --output table
az quota list \ --scope /subscriptions/<subscription-id>/providers/Microsoft.App/locations/eastus \ --output table ```
📖 See also: az quota list
| Error | Cause | Solution | |-----------|-----------|--------------| | REST API "No Limit" | Misleading — not unlimited | Use CLI instead; see warning in Quick Reference | | ExtensionNotFound | Quota extension not installed | az extension add --name quota | | BadRequest | Resource provider not supported by quota API | Check service limits docs | | MissingRegistration | Microsoft.Quota provider not registered | az provider register --namespace Microsoft.Quota | | QuotaExceeded | Deployment would exceed quota | Request increase or choose different region | | InvalidScope | Incorrect scope format | Use pattern: /subscriptions/<id>/providers/<namespace>/locations/<region> | | 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. |
Known unsupported providers:
Confirmed working providers:
📖 See also: Troubleshooting Guide
| Resource | Link | |----------|------| | CLI Commands Reference | commands.md - Complete syntax, parameters, examples | | Azure Quotas Overview | Microsoft Learn | | Service Limits Documentation | Azure subscription limits | | Azure Portal - My Quotas | Portal Link | | Request Quota Increases | How to request increases |
--output table for quick scanningConnecte-toi pour laisser un commentaire.