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

如何使用Azure CLI列出已安装的Web App扩展以便批量移除?

如何用Azure CLI获取并批量移除Azure App Service的Site Extension

获取已安装的Web App扩展列表

由于Azure CLI的az webapp命令空间目前没有直接管理Site Extension的命令,你可以通过调用Azure REST API结合az rest命令来查询每个Web App的已安装扩展:

  1. 单个Web App查询示例:
# 替换为你的订阅ID、资源组名和Web App名称
az rest --method get \
  --uri "/subscriptions/<订阅ID>/resourceGroups/<资源组名>/providers/Microsoft.Web/sites/<WebApp名称>/siteextensions?api-version=2022-09-01"

该命令会返回该Web App下所有已安装扩展的详细信息,包括名称、资源ID等。

  1. 批量查询所有Web App的扩展:
    如果需要批量处理50个Web App,可以编写bash脚本(需提前安装jq工具处理JSON输出):
# 替换为你的订阅ID
SUBSCRIPTION_ID="你的订阅ID"

# 获取目标范围内的所有Web App(可添加--resource-group参数过滤特定资源组)
WEB_APPS=$(az webapp list --subscription $SUBSCRIPTION_ID --query "[].{name:name, resourceGroup:resourceGroup}" -o json)

# 遍历每个Web App查询扩展
echo $WEB_APPS | jq -c '.[]' | while read -r app; do
    APP_NAME=$(echo $app | jq -r '.name')
    RESOURCE_GROUP=$(echo $app | jq -r '.resourceGroup')
    
    echo "=== 查询Web App $APP_NAME 的已安装扩展 ==="
    az rest --method get \
      --uri "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Web/sites/$APP_NAME/siteextensions?api-version=2022-09-01" \
      --query "[].{名称:name, 资源ID:id}" -o table
done

批量移除Site Extension

基于上面的查询结果,你可以在脚本中添加删除逻辑,直接批量移除扩展:

# 替换为你的订阅ID
SUBSCRIPTION_ID="你的订阅ID"

WEB_APPS=$(az webapp list --subscription $SUBSCRIPTION_ID --query "[].{name:name, resourceGroup:resourceGroup}" -o json)

echo $WEB_APPS | jq -c '.[]' | while read -r app; do
    APP_NAME=$(echo $app | jq -r '.name')
    RESOURCE_GROUP=$(echo $app | jq -r '.resourceGroup')
    
    echo "=== 处理Web App $APP_NAME ==="
    # 获取已安装扩展的资源ID
    EXTENSION_IDS=$(az rest --method get \
      --uri "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Web/sites/$APP_NAME/siteextensions?api-version=2022-09-01" \
      --query "[].id" -o json)
    
    # 遍历删除每个扩展
    echo $EXTENSION_IDS | jq -c '.[]' | while read -r ext_id; do
        echo "正在删除扩展: $ext_id"
        az resource delete --id $ext_id
    done
done

关于az resource list无结果的说明

az resource list --resource-type Microsoft.Web/sites/siteextensions无法返回结果,是因为Site Extension属于Web App的子资源,全局资源列表查询不会默认返回这类嵌套子资源。必须针对每个父Web App单独查询,才能获取到对应的扩展信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 03:35:33