You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Curl调用Azure REST API更新VMSS时遇UnsupportedResourceOperation错误

解决Azure VMSS PATCH请求报错"UnsupportedResourceOperation"的问题

核心原因排查

你遇到的错误大概率是因为VMSS编排模式不匹配当前API请求方式,Azure VMSS分为Uniform和Flexible两种编排模式,二者修改容量的API规则完全不同。

解决方案

1. 先确认VMSS的编排模式

可以通过Azure门户查看:进入VMSS的「概述」页面,找到「编排模式」字段;或者用Azure CLI快速查询:

az vmss show --resource-group ${RG} --name ${SCALE_SET_NAME} --query orchestrationMode

2. 针对Uniform模式的修复

如果你的VMSS是Uniform模式,调整请求体并确保参数正确:

  • 简化请求体(仅传递需要修改的capacity字段,避免冗余参数干扰):
    body.json修改为:
    {
      "sku": {
        "capacity": 1
      }
    }
    
  • 确保Curl中的变量(${SUBSCRIPTION}、${RG}、${SCALE_SET_NAME}、${TOKEN})已正确替换为实际值,可通过echo ${SUBSCRIPTION}等命令验证。
  • 可选:将API版本升级到最新稳定版(如2023-07-01),避免版本兼容性问题。

3. 针对Flexible模式的修复

如果是Flexible模式,不能使用PATCH请求到VMSS主端点,必须使用专门的缩放API:
替换Curl命令为:

curl -s -X POST \
  -H "Authorization: Bearer ${TOKEN}" \
  -H "Content-type: application/json" \
  -d '{
    "capacity": 1
  }' \
  https://management.azure.com/subscriptions/${SUBSCRIPTION}/resourceGroups/${RG}/providers/Microsoft.Compute/virtualMachineScaleSets/${SCALE_SET_NAME}/flexible/scale?api-version=2023-07-01

该API的请求体无需嵌套在sku字段下,直接传递capacity即可。

额外排查点

  • 确认Token权限:确保你的Token拥有Microsoft.Compute/virtualMachineScaleSets/write权限(你能GET VMSS信息,说明读取权限没问题,但修改需要写入权限)。
  • 检查Token的resource范围:获取Token时需指定resource为https://management.azure.com/,否则会导致权限验证异常。

内容的提问来源于stack exchange,提问作者Simon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 12:10:18