Azure 配额 - 服务限制与容量管理
权威指南 — 必须严格遵循这些配额管理和容量验证说明。
概述
什么是 Azure 配额?
Azure 配额(也称为服务限制)是一个订阅中可部署的资源数量上限。配额:
- 防止意外过度预配
- 确保 Azure 中资源的公平分配
- 表示每个区域的可用容量
- 可提高(可调整配额)或固定不变(不可调整配额)
关键概念: 配额 = 资源可用性
如果没有配额,便无法部署资源。规划部署或选择区域时,务必检查配额。
何时使用此 Skill
在以下情况下调用此 skill:
- 规划新部署 - 部署前验证容量
- 选择 Azure 区域 - 比较不同区域的配额可用性
- 排查配额超限错误 - 对比当前使用量与限制
- 申请提高配额 - 通过 CLI 或门户提交提高配额请求
- 比较区域容量 - 查找有可用配额的区域
- 验证预配限制 - 确保部署不会超出配额
快速参考
| 属性 | 详情 | |--------------|-------------| | 主要工具 | Azure CLI(az quota) - 必须始终优先使用此工具 | | 必需扩展 | az extension add --name quota(必须先安装) | | 关键命令 | az quota list, az quota show, az quota usage list, az quota usage show | | 完整 CLI 参考 | [commands.md](./references/commands.md) | | Azure 门户 | 我的配额 - 仅作为备用方案使用 | | REST API | Microsoft.Quota 提供程序 - 不可靠,请勿优先使用 | | MCP 服务器 | azure-quota MCP 服务器 — 严禁使用此服务器。它不可靠。必须始终改用 az quota CLI。 | | 所需权限 | 读取者(查看)或配额请求操作员(管理) |
⚠️ 必须始终优先使用 CLI
REST API 和门户可能显示具有误导性的 "No Limit" 值——这并不意味着容量无限。这表示配额 API 不支持该资源类型。始终先使用az quota命令;如果 CLI 返回BadRequest,则转而查阅 Azure 服务限制文档。
有关完整的 CLI 参考,请参阅 [commands.md](./references/commands.md)。
配额类型
| 类型 | 可调整性 | 审批 | 示例 | |----------|-------------------|--------------|--------------| | 可调整 | 可通过门户/CLI/API 提高 | 通常自动获批 | VM vCPUs、公网 IP、存储账户 | | 不可调整 | 固定限制 | 无法更改 | 订阅范围的硬性限制 |
重要: 申请提高配额是免费的。您只需为实际使用的资源付费,无需为配额分配付费。
了解资源名称映射
⚠️ 关键: ARM 资源类型与配额资源名称之间不存在 1:1 映射。
示例映射
| ARM 资源类型 | 配额资源名称 | |-------------------|---------------------| | Microsoft.App/managedEnvironments | ManagedEnvironmentCount | | Microsoft.Compute/virtualMachines | standardDSv3Family, cores, virtualMachines | | Microsoft.Network/publicIPAddresses | PublicIPAddresses, IPv4StandardSkuPublicIpAddresses |
发现工作流
禁止根据 ARM 类型推定配额资源名称。 始终使用以下工作流:
- 为资源提供程序列出所有配额:
``bash az quota list --scope /subscriptions/<id>/providers/<ProviderNamespace>/locations/<region> ``
- 按
localizedValue匹配(人类可读的说明),以查找相关配额
- 在后续命令中使用
name字段(而不是 ARM 资源类型):
``bash az quota show --resource-name ManagedEnvironmentCount --scope ... az quota usage show --resource-name ManagedEnvironmentCount --scope ... ``
📖 详细映射示例和工作流: 请参阅 [commands.md - 资源名称映射](./references/commands.md#resource-name-mapping)
脚本
预构建脚本可处理配额扩展安装、使用量查询和容量计算。请使用这些脚本,而不是手动构造命令。单次调用即可返回限制、使用量和可用容量。
| 脚本 | 用途 | 用法 | |--------|---------|-------| | scripts/check-quota.ps1 | 返回所有配额的限制、使用量和可用容量(提供资源名称时则返回单个配额的数据) | 用于配额检查的主要脚本 | | scripts/check-quota.sh | 与上文相同(bash) | 用于配额检查的主要脚本 |
核心工作流
工作流 1:检查特定资源的配额
场景: 部署前验证配额限制和当前使用量
使用资源提供程序和区域运行脚本。只需一次调用,即可返回包含所有配额及其限制、当前使用量和可用容量的表格:
.\scripts\check-quota.ps1 -ResourceProvider <provider> -Region <region>
./scripts/check-quota.sh <provider> <region>
要检查单个资源,请添加资源名称:
.\scripts\check-quota.ps1 -ResourceProvider <provider> -Region <region> -ResourceName <resource-name>
./scripts/check-quota.sh <provider> <region> <resource-name>
示例:
.\scripts\check-quota.ps1 -ResourceProvider Microsoft.Compute -Region eastus
示例输出:
| 资源 | 区域 | 限制 | 使用量 | 可用容量 | |----------|--------|-------|-------|-----------| | cores | eastus | 100 | 50 | 50 | | standardDSv3Family | eastus | 350 | 50 | 300 | | virtualMachines | eastus | 25000 | 5 | 24995 | | ... | ... | ... | ... | ... |
📖 另请参阅: [az quota show](./references/commands.md#az-quota-show)、[az quota usage show](./references/commands.md#az-quota-usage-show)
工作流 2:比较不同区域的配额
场景: 根据可用容量找出最适合部署的区域
# Define candidate regions
REGIONS=("eastus" "eastus2" "westus2" "centralus")
VM_FAMILY="standardDSv3Family"
SUBSCRIPTION_ID="<subscription-id>"
# Check quota availability across regions
for 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
📖 另请参阅: [commands.md](./references/commands.md#az-quota-show),查看完整的脚本化多区域循环模式
工作流 3:请求提高配额
场景: 当前配额不足以支持部署
# Request increase for VM quota
az quota update \
--resource-name standardDSv3Family \
--scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus \
--limit-object value=500 \
--resource-type dedicated
# Check request status
az quota request status list \
--scope /subscriptions/<subscription-id>/providers/Microsoft.Compute/locations/eastus
审批流程:
- 大多数可调整配额会在数分钟内自动获批
- 某些请求需要人工审核(数小时到数天)
- 不可调整配额需要提交 Azure 支持工单
📖 另请参阅: [az quota update](./references/commands.md#az-quota-update)、[az quota request status](./references/advanced-commands.md#az-quota-request-status-list)
工作流 4:列出用于规划的所有配额
场景: 了解某个区域中资源提供程序的所有配额
# 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 quotas
az quota list \
--scope /subscriptions/<subscription-id>/providers/Microsoft.Network/locations/eastus \
--output table
# List all Container Apps quotas
az quota list \
--scope /subscriptions/<subscription-id>/providers/Microsoft.App/locations/eastus \
--output table
📖 另请参阅: [az quota list](./references/commands.md#az-quota-list)
故障排除
常见错误
| 错误 | 原因 | 解决方案 | |-----------|-----------|--------------| | REST API "No Limit" | 具有误导性——并非容量不受限制 | 改用 CLI;请参阅快速参考中的警告 | | ExtensionNotFound | 未安装配额扩展 | az extension add --name quota | | BadRequest | 配额 API 不支持该资源提供程序 | 查看服务限制文档 | | MissingRegistration | Microsoft.Quota 提供程序未注册 | az provider register --namespace Microsoft.Quota | | QuotaExceeded | 部署将超出配额 | 请求提高配额或选择其他区域 | | InvalidScope | 范围格式不正确 | 使用以下格式:/subscriptions/<id>/providers/<namespace>/locations/<region> | | CLI 命令全部失败 | 身份验证、扩展或环境问题 | 验证 Azure CLI 的登录状态(az account show),重新安装配额扩展并检查网络。不得使用 azure-quota MCP 服务器——该服务器不可靠。 |
不支持的资源提供程序
已知不支持的提供程序:
- ❌ Microsoft.DocumentDB(Cosmos DB) - 使用门户或 Cosmos DB 限制文档
已确认可用的提供程序:
- ✅ Microsoft.Compute(虚拟机、磁盘、核心数)
- ✅ Microsoft.Network(虚拟网络、IP 地址、负载均衡器)
- ✅ Microsoft.App(容器应用)
- ✅ Microsoft.Storage(存储帐户)
- ✅ Microsoft.MachineLearningServices (ML compute)
📖 另请参阅: [故障排除指南](./references/commands.md#troubleshooting)
其他资源
| 资源 | 链接 | |----------|------| | CLI 命令参考 | [commands.md](./references/commands.md) - 完整语法、参数和示例 | | Azure 配额概述 | Microsoft Learn | | 服务限制文档 | Azure 订阅限制 | | Azure 门户 - 我的配额 | 门户链接 | | 请求提高配额 | 如何请求提高配额 |
最佳实践
- ✅ 部署前始终检查配额 - 防止出现超出配额错误
- ✅ 先运行
az quota list- 查找正确的配额资源名称 - ✅ 比较区域 - 查找有可用容量的区域
- ✅ 考虑增长需求 - 申请比当前需求高 20% 的缓冲额度
- ✅ 使用表格输出查看概览 - 使用
--output table可快速浏览 - ✅ 监控使用量趋势 - 在 80% 阈值设置警报(通过门户)