# Set parameters for the procedure
$siteName = '<app-name>'
$vNetResourceGroupName = '<network-resource-group>'
$webAppResourceGroupName = '<app-resource-group>'
$vNetName = '<virtual-network>'
$integrationSubnetName = '<subnet>'
$vNetSubscriptionId = '<subscription-GUID>'
注释
如果virtual network与 Web 应用位于不同的订阅中,则可以使用 Set-AzContext -Subscription "<subscription-ID>" 命令设置当前订阅上下文。 将当前订阅上下文设置为<0>虚拟网络部署所在的订阅。
检查子网是否已委托给 Microsoft.Web/serverFarms:
# Set the virtual network for the subnet to check
$vnet = Get-AzVirtualNetwork -Name $vNetName -ResourceGroupName $vNetResourceGroupName
# Get the subnet
$subnet = Get-AzVirtualNetworkSubnetConfig -Name $integrationSubnetName -VirtualNetwork $vnet
# Check the delegation
Get-AzDelegation -Subnet $subnet
如果子网未委托给 Microsoft.Web/serverFarms,请添加委托:
# Get the subnet
$subnet = Add-AzDelegation -Name "myDelegation" -ServiceName "Microsoft.Web/serverFarms" -Subnet $subnet
# Set the delegation
Set-AzVirtualNetwork -VirtualNetwork $vnet
配置虚拟网络集成,并通过该连接路由所有流量。
# Set the subnet resource ID
$subnetResourceId = "/subscriptions/$vNetSubscriptionId/resourceGroups/$vNetResourceGroupName/providers/Microsoft.Network/virtualNetworks/$vNetName/subnets/$integrationSubnetName"
# Get the web app configuration
$webApp = Get-AzResource -ResourceType "Microsoft.Web/sites" -ResourceGroupName $webAppResourceGroupName -ResourceName $siteName
# Set the subnet ID
$webApp.Properties | Add-Member -NotePropertyName "virtualNetworkSubnetId" -NotePropertyValue $subnetResourceId -Force
# Set routing to all traffic
$webApp.Properties | Add-Member -NotePropertyName "vnetRouteAllEnabled" -NotePropertyValue $true -Force
# Complete the integration
$webApp | Set-AzResource -Force
注释
如果virtual network与 Web 应用位于不同的订阅中,则可以使用 Set-AzContext -Subscription "<subscription-ID>" 命令设置当前订阅上下文。 将当前订阅上下文设置为部署 Web 应用的 订阅。