如何使用PowerShell/Azure CLI为多个Azure Web App槽位配置VNet集成
批量为Azure Web App部署槽配置VNet集成方案
核心改动逻辑:原有命令仅针对Web App主站点生效,针对部署槽配置时,需要在az webapp vnet-integration add命令中新增--slot参数指定目标槽位名称,同时新增遍历每个Web App下所有部署槽的逻辑即可。
调整后完整可运行代码如下:
$RGName = "web app资源组名称" $vnetName = "yashvnet01" $VnetRG = "vnet所属资源组名称" $subnetName = "目标子网名称" # 获取VNet和子网配置 $Vnet = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $VnetRG $subnet = Get-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $Vnet # 遍历指定资源组下所有Web App $Webapps=Get-AzWebApp -ResourceGroupName $RGname ForEach($webapp in $Webapps.Name) { # 可选:保留原有主站点VNet集成配置逻辑,不需要可删除 Write-Host "正在为Web App主站点 $webapp 配置VNet集成" az webapp vnet-integration add --resource-group $RGname --name $webapp --vnet $Vnet.Id --subnet $subnetName Write-Host "Web App主站点 $webapp VNet集成配置完成" # 新增:获取当前Web App的所有部署槽并遍历配置 $slots = Get-AzWebAppSlot -ResourceGroupName $RGName -Name $webapp ForEach($slot in $slots) { Write-Host "正在为Web App $webapp 的槽位 $($slot.Name) 配置VNet集成" # 新增--slot参数指定槽位名称 az webapp vnet-integration add --resource-group $RGname --name $webapp --slot $slot.Name --vnet $Vnet.Id --subnet $subnetName Write-Host "Web App $webapp 的槽位 $($slot.Name) VNet集成配置完成" } }
- 执行前需确认目标子网已完成
Microsoft.Web/serverFarms服务委派,未配置委派会导致VNet集成添加失败 - 运行脚本前需提前通过
az login完成Azure账号登录,并通过az account set --subscription <订阅ID>切换到目标订阅 - 若仅需要为指定名称的槽位配置,可在遍历槽位时新增名称过滤条件
内容的提问来源于stack exchange,提问作者rewanth varma
相关产品推荐
相关产品推荐

