Aktivera integrering av virtuella nätverk i Azure App Service
Genom att integrera med ett virtuellt Azure-nätverk från din Azure App Service app kan du nå privata resurser från din app i det virtuella nätverket.
Förutsättningar
Integreringsfunktionen för virtuella nätverk kräver:
- En App Service prisnivå som stöder integrering av virtuella nätverk.
- Ett virtuellt nätverk i samma region med ett tomt undernät.
Undernätet måste delegeras till Microsoft.Web/serverFarms. Om delegeringen inte görs före integreringen konfigurerar etableringsprocessen den här delegeringen. Undernätet måste tilldelas ett IPv4-block /28
(16 adresser). Vi rekommenderar att du har minst 64 adresser (IPv4-block /26
) för maximal horisontell skalning.
Om det virtuella nätverket finns i en annan prenumeration än appen måste du se till att prenumerationen med det virtuella nätverket är registrerad för Microsoft.Web
resursprovidern. Du kan uttryckligen registrera providern genom att följa den här dokumentationen, men den registreras automatiskt när du skapar den första webbappen i en prenumeration.
Konfigurera i Azure Portal
Gå till Nätverk i App Service-portalen. Under Konfiguration av utgående trafik väljer du Integrering av virtuellt nätverk.
Välj Lägg till integrering av virtuellt nätverk.
Listrutan innehåller alla virtuella nätverk i din prenumeration i samma region. Välj ett tomt befintligt undernät eller skapa ett nytt undernät.
Under integreringen startas appen om. När integreringen är klar visas information om det virtuella nätverk som du är integrerad med.
Konfigurera med Azure CLI
Du kan också konfigurera integrering av virtuella nätverk med hjälp av Azure CLI:
az webapp vnet-integration add --resource-group <group-name> --name <app-name> --vnet <vnet-name> --subnet <subnet-name>
Anteckning
Kommandot kontrollerar om undernätet har delegerats till Microsoft.Web/serverFarms och tillämpar den nödvändiga delegeringen om det inte har konfigurerats. Om undernätet har konfigurerats och du inte har behörighet att kontrollera det, eller om det virtuella nätverket finns i en annan prenumeration, kan du använda parametern --skip-delegation-check
för att kringgå verifieringen.
Konfigurera med Azure PowerShell
Förbered parametrar.
$siteName = '<app-name>'
$vNetResourceGroupName = '<group-name>'
$webAppResourceGroupName = '<group-name>'
$vNetName = '<vnet-name>'
$integrationSubnetName = '<subnet-name>'
$vNetSubscriptionId = '<subscription-guid>'
Anteckning
Om det virtuella nätverket finns i en annan prenumeration än webbappen kan du använda kommandot Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx-xxxx" för att ange den aktuella prenumerationskontexten. Ange den aktuella prenumerationskontexten till prenumerationen där det virtuella nätverket distribuerades.
Kontrollera om undernätet har delegerats till Microsoft.Web/serverFarms.
$vnet = Get-AzVirtualNetwork -Name $vNetName -ResourceGroupName $vNetResourceGroupName
$subnet = Get-AzVirtualNetworkSubnetConfig -Name $integrationSubnetName -VirtualNetwork $vnet
Get-AzDelegation -Subnet $subnet
Om ditt undernät inte har delegerats till Microsoft.Web/serverFarms lägger du till delegering med hjälp av kommandona nedan.
$subnet = Add-AzDelegation -Name "myDelegation" -ServiceName "Microsoft.Web/serverFarms" -Subnet $subnet
Set-AzVirtualNetwork -VirtualNetwork $vnet
Konfigurera integrering av virtuella nätverk.
Anteckning
Om webbappen finns i en annan prenumeration än virtuellt nätverk kan du använda kommandot Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx-xxxx" för att ange den aktuella prenumerationskontexten. Ange den aktuella prenumerationskontexten till den prenumeration där webbappen distribuerades.
$subnetResourceId = "/subscriptions/$vNetSubscriptionId/resourceGroups/$vNetResourceGroupName/providers/Microsoft.Network/virtualNetworks/$vNetName/subnets/$integrationSubnetName"
$webApp = Get-AzResource -ResourceType Microsoft.Web/sites -ResourceGroupName $webAppResourceGroupName -ResourceName $siteName
$webApp.Properties.virtualNetworkSubnetId = $subnetResourceId
$webApp.Properties.vnetRouteAllEnabled = 'true'
$webApp | Set-AzResource -Force