Azure App Service自动缩放CLI命令报UnsupportedMetric错误求助
解决Azure CLI配置App Service CPU自动缩放时的UnsupportedMetric错误
问题根源
你遇到的UnsupportedMetric错误,核心原因是自动缩放规则不能直接作用于单个Web App(Microsoft.Web/sites)。Azure App Service的CPU、内存等计算资源是由对应的**App Service Plan(资源类型Microsoft.Web/serverfarms)**统一管理的,自动缩放逻辑必须针对计划而非单个Web应用——直接针对Web App配置的话,系统找不到对应的CPU指标,所以抛出错误。
修复步骤
1. 获取你的App Service Plan名称
首先需要确认Web App所属的App Service Plan名称,可以用以下命令查询:
az webapp show --resource-group $COMMON_RESOURCE_GROUP_NAME --name $WEBAPP_NAME --query serverFarmId --output tsv
这个命令会返回计划的完整ID,格式类似/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Web/serverfarms/你的计划名称,提取出最后的计划名称即可。
2. 先创建自动缩放设置(如果还没创建)
自动缩放规则需要依附于一个已存在的自动缩放设置,执行以下命令创建基础设置(可根据需求调整最小/最大实例数):
az monitor autoscale create --resource-group $COMMON_RESOURCE_GROUP_NAME \ --subscription $SUBSCRIPTION_ID \ --resource $APP_SERVICE_PLAN_NAME \ --resource-type 'Microsoft.Web/serverfarms' \ --name "test" \ --min-count 1 \ --max-count 5 \ --count 1
3. 重新创建CPU自动缩放规则
现在针对App Service Plan创建规则,修改--resource-type和--resource参数:
az monitor autoscale rule create --resource-group $COMMON_RESOURCE_GROUP_NAME \ --subscription $SUBSCRIPTION_ID \ --resource $APP_SERVICE_PLAN_NAME \ --resource-type 'Microsoft.Web/serverfarms' \ --autoscale-name "test" \ --condition "Percentage CPU > 75 avg 5m" \ --scale out 1
额外说明
- 如果你需要配置缩容规则,可以再添加一条类似的命令,把
--scale out 1改成--scale in 1,条件改成Percentage CPU < 25 avg 5m这类阈值。 - 自动缩放设置的名称(这里是
test)需要和规则的--autoscale-name保持一致,确保规则关联到正确的设置上。
内容的提问来源于stack exchange,提问作者Dhannjay Sharma
相关产品推荐
相关产品推荐

