npx skills add https://github.com/microsoft/azure-skills --skill azure-quotasHow Azure Quotas fits into a Paperclip company.
Azure Quotas drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.
Pre-configured AI company — 18 agents, 18 skills, one-time purchase.
SKILL.md258 linesExpandCollapse
---name: azure-quotasdescription: "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: MITmetadata: author: Microsoft version: "1.0.7"--- # Azure Quotas - Service Limits & Capacity Management > **AUTHORITATIVE GUIDANCE** — Follow these instructions exactly for quota management and capacity validation. ## Overview **What are Azure Quotas?** Azure quotas (also called service limits) are the maximum number of resources you can deploy in a subscription. Quotas:- Prevent accidental over-provisioning- Ensure fair resource distribution across Azure- Represent **available capacity** in each region- Can be increased (adjustable quotas) or are fixed (non-adjustable) **Key Concept:** **Quotas = Resource Availability** If you don't have quota, you cannot deploy resources. Always check quotas when planning deployments or selecting regions. ## When to Use This Skill Invoke this skill when: - **Planning a new deployment** - Validate capacity before deployment- **Selecting an Azure region** - Compare quota availability across regions- **Troubleshooting quota exceeded errors** - Check current usage vs limits- **Requesting quota increases** - Submit increase requests via CLI or Portal- **Comparing regional capacity** - Find regions with available quota- **Validating provisioning limits** - Ensure deployment won't exceed quotas ## Quick Reference | **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](./references/commands.md) || **Azure Portal** | [My quotas](https://portal.azure.com/#blade/Microsoft_Azure_Capacity/QuotaMenuBlade/myQuotas) - 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 with `az quota` commands; fall back to [Azure service limits docs](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits) if CLI returns `BadRequest`.>> For complete CLI reference, see [commands.md](./references/commands.md). ## Quota Types | **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. ## Understanding Resource Name Mapping **⚠️ CRITICAL:** There is **NO 1:1 mapping** between ARM resource types and quota resource names. ### Example Mappings | ARM Resource Type | Quota Resource Name ||-------------------|---------------------|| `Microsoft.App/managedEnvironments` | `ManagedEnvironmentCount` || `Microsoft.Compute/virtualMachines` | `standardDSv3Family`, `cores`, `virtualMachines` || `Microsoft.Network/publicIPAddresses` | `PublicIPAddresses`, `IPv4StandardSkuPublicIpAddresses` | ### Discovery Workflow **Never assume the quota resource name from the ARM type.** Always use this workflow: 1. **List all quotas** for the resource provider: ```bash az quota list --scope /subscriptions/<id>/providers/<ProviderNamespace>/locations/<region> ``` 2. **Match by `localizedValue`** (human-readable description) to find the relevant quota 3. **Use the `name` field** (not ARM resource type) in subsequent commands: ```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](./references/commands.md#resource-name-mapping) ## Core Workflows ### Workflow 1: Check Quota for a Specific Resource **Scenario:** Verify quota limit and current usage before deployment ```bash# 1. Install quota extension (if not already installed)az extension add --name quota # 2. List all quotas for the provider to find the quota resource nameaz quota list \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus # 3. Show quota limit for a specific resourceaz quota show \ --resource-name standardDSv3Family \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus # 4. Show current usageaz quota usage show \ --resource-name standardDSv3Family \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus``` **Example Output Analysis:**- Quota limit: 350 vCPUs- Current usage: 50 vCPUs- Available capacity: 300 vCPUs (350 - 50) > **📖 See also:** [az quota show](./references/commands.md#az-quota-show), [az quota usage show](./references/commands.md#az-quota-usage-show) ### Workflow 2: Compare Quotas Across Regions **Scenario:** Find the best region for deployment based on available capacity ```bash# Define candidate regionsREGIONS=("eastus" "eastus2" "westus2" "centralus")VM_FAMILY="standardDSv3Family"SUBSCRIPTION_ID="<subscription-id>" # Check quota availability across regionsfor region in "${REGIONS[@]}"; do echo "=== Checking $region ===" # Get limit LIMIT=$(az quota show \ --resource-name $VM_FAMILY \ --scope "/subscriptions/$SUBSCRIPTION_ID/providers/Microsoft.Compute/locations/$region" \ --query "properties.limit.value" -o tsv) # Get current usage USAGE=$(az quota usage show \ --resource-name $VM_FAMILY \ --scope "/subscriptions/$SUBSCRIPTION_ID/providers/Microsoft.Compute/locations/$region" \ --query "properties.usages.value" -o tsv) # Calculate available AVAILABLE=$((LIMIT - USAGE)) echo "Region: $region | Limit: $LIMIT | Usage: $USAGE | Available: $AVAILABLE"done``` > **📖 See also:** [commands.md](./references/commands.md#az-quota-show) for full scripted multi-region loop patterns ### Workflow 3: Request Quota Increase **Scenario:** Current quota is insufficient for deployment ```bash# Request increase for VM quotaaz quota update \ --resource-name standardDSv3Family \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus \ --limit-object value=500 \ --resource-type dedicated # Check request statusaz quota request status list \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus``` **Approval Process:**- Most adjustable quotas are auto-approved within minutes- Some requests require manual review (hours to days)- Non-adjustable quotas require Azure Support ticket > **📖 See also:** [az quota update](./references/commands.md#az-quota-update), [az quota request status](./references/advanced-commands.md#az-quota-request-status-list) ### Workflow 4: List All Quotas for Planning **Scenario:** Understand all quotas for a resource provider in a region ```bash# List all compute quotas in East US (table format)az quota list \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus \ --output table # List all network quotasaz quota list \ --scope /subscriptions/<subscription-id>/providers/Microsoft.Network/locations/eastus \ --output table # List all Container Apps quotasaz quota list \ --scope /subscriptions/<subscription-id>/providers/Microsoft.App/locations/eastus \ --output table``` > **📖 See also:** [az quota list](./references/commands.md#az-quota-list) ## Troubleshooting ### Common Errors | **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](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits) || `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. | ### Unsupported Resource Providers **Known unsupported providers:**- ❌ Microsoft.DocumentDB (Cosmos DB) - Use Portal or [Cosmos DB limits docs](https://learn.microsoft.com/en-us/azure/cosmos-db/concepts-limits) **Confirmed working providers:**- ✅ Microsoft.Compute (VMs, disks, cores)- ✅ Microsoft.Network (VNets, IPs, load balancers)- ✅ Microsoft.App (Container Apps)- ✅ Microsoft.Storage (storage accounts)- ✅ Microsoft.MachineLearningServices (ML compute) > **📖 See also:** [Troubleshooting Guide](./references/commands.md#troubleshooting) ## Additional Resources | Resource | Link ||----------|------|| **CLI Commands Reference** | [commands.md](./references/commands.md) - Complete syntax, parameters, examples || **Azure Quotas Overview** | [Microsoft Learn](https://learn.microsoft.com/en-us/azure/quotas/quotas-overview) || **Service Limits Documentation** | [Azure subscription limits](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits) || **Azure Portal - My Quotas** | [Portal Link](https://portal.azure.com/#blade/Microsoft_Azure_Capacity/QuotaMenuBlade/myQuotas) || **Request Quota Increases** | [How to request increases](https://learn.microsoft.com/en-us/azure/quotas/quickstart-increase-quota-portal) | ## Best Practices 1. ✅ **Always check quotas before deployment** - Prevent quota exceeded errors2. ✅ **Run `az quota list` first** - Discover correct quota resource names3. ✅ **Compare regions** - Find regions with available capacity4. ✅ **Account for growth** - Request 20% buffer above immediate needs5. ✅ **Use table output for overview** - `--output table` for quick scanning6. ✅ **Monitor usage trends** - Set up alerts at 80% threshold (via Portal)Analyze Test Run
Install Analyze Test Run skill for Claude Code from microsoft/github-copilot-for-azure.
Appinsights Instrumentation
Microsoft's official guidance for adding Azure Application Insights telemetry to web applications. Covers SDK setup patterns for ASP.NET Core, Node.js, and Pyth
Appinsights Instrumentation
The appinsights-instrumentation skill provides developers with guidance, reference materials, and best practices for instrumenting webapps with Azure Applicatio