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:

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

  1. Gå till Nätverk i App Service-portalen. Under Konfiguration av utgående trafik väljer du Integrering av virtuellt nätverk.

  2. Välj Lägg till integrering av virtuellt nätverk.

    Skärmbild som visar hur du väljer Integrering av virtuellt nätverk.

  3. 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.

    Skärmbild som visar hur du väljer det virtuella nätverket.

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

Nästa steg