Włączanie integracji sieci wirtualnej w Azure App Service

Dzięki integracji z siecią wirtualną platformy Azure z aplikacji Azure App Service możesz uzyskać dostęp do zasobów prywatnych z aplikacji w sieci wirtualnej.

Wymagania wstępne

Funkcja integracji sieci wirtualnej wymaga:

Podsieć musi być delegowana do aplikacji Microsoft.Web/serverFarms. Jeśli delegowanie nie zostanie wykonane przed integracją, proces aprowizacji konfiguruje to delegowanie. Podsieć musi być przydzielona blok IPv4 /28 (16 adresów). Zalecamy, aby mieć co najmniej 64 adresy (blok IPv4 /26 ), aby umożliwić maksymalną skalę poziomą.

Jeśli sieć wirtualna znajduje się w innej subskrypcji niż aplikacja, musisz upewnić się, że subskrypcja z siecią wirtualną jest zarejestrowana dla Microsoft.Web dostawcy zasobów. Możesz jawnie zarejestrować dostawcę, postępując zgodnie z tą dokumentacją, ale jest on automatycznie rejestrowany podczas tworzenia pierwszej aplikacji internetowej w subskrypcji.

Konfigurowanie w Azure Portal

  1. Przejdź do pozycji Sieć w portalu App Service. W obszarze Ruch wychodzący wybierz pozycję Integracja z siecią wirtualną.

  2. Wybierz pozycję Dodaj sieć wirtualną.

    Zrzut ekranu przedstawiający wybieranie integracji z siecią wirtualną.

  3. Lista rozwijana zawiera wszystkie sieci wirtualne w ramach subskrypcji w tym samym regionie. Wybierz pustą wstępnie istniejącą podsieć lub utwórz nową podsieć.

    Zrzut ekranu przedstawiający wybieranie sieci wirtualnej.

Podczas integracji aplikacja jest ponownie uruchamiana. Po zakończeniu integracji zostaną wyświetlone szczegółowe informacje na temat sieci wirtualnej, z którą się integrujesz.

Konfigurowanie przy użyciu interfejsu wiersza polecenia platformy Azure

Integrację z siecią wirtualną można również skonfigurować przy użyciu interfejsu wiersza polecenia platformy Azure:

az webapp vnet-integration add --resource-group <group-name> --name <app-name> --vnet <vnet-name> --subnet <subnet-name>

Uwaga

Polecenie sprawdza, czy podsieć jest delegowana do usługi Microsoft.Web/serverFarms i stosuje niezbędne delegowanie, jeśli nie jest skonfigurowane. Jeśli podsieć została skonfigurowana i nie masz uprawnień do jej sprawdzania lub jeśli sieć wirtualna znajduje się w innej subskrypcji, możesz użyć parametru --skip-delegation-check , aby obejść walidację.

Konfigurowanie przy użyciu Azure PowerShell

Przygotowywanie parametrów.

$siteName = '<app-name>'
$vNetResourceGroupName = '<group-name>'
$webAppResourceGroupName = '<group-name>'
$vNetName = '<vnet-name>'
$integrationSubnetName = '<subnet-name>'
$vNetSubscriptionId = '<subscription-guid>'

Uwaga

Jeśli sieć wirtualna znajduje się w innej subskrypcji niż aplikacja internetowa, możesz użyć polecenia Set-AzContext -Subscription "xxxx-xxxx-xxxx" , aby ustawić bieżący kontekst subskrypcji. Ustaw bieżący kontekst subskrypcji na subskrypcję, w której wdrożono sieć wirtualną.

Sprawdź, czy podsieć jest delegowana do aplikacji Microsoft.Web/serverFarms.

$vnet = Get-AzVirtualNetwork -Name $vNetName -ResourceGroupName $vNetResourceGroupName
$subnet = Get-AzVirtualNetworkSubnetConfig -Name $integrationSubnetName -VirtualNetwork $vnet
Get-AzDelegation -Subnet $subnet

Jeśli podsieć nie jest delegowana do witryny Microsoft.Web/serverFarms, dodaj delegowanie przy użyciu poniższych poleceń.

$subnet = Add-AzDelegation -Name "myDelegation" -ServiceName "Microsoft.Web/serverFarms" -Subnet $subnet
Set-AzVirtualNetwork -VirtualNetwork $vnet

Konfigurowanie integracji z siecią wirtualną.

Uwaga

Jeśli aplikacja internetowa znajduje się w innej subskrypcji niż sieć wirtualna, możesz użyć polecenia Set-AzContext -Subscription "xxxx-xxxx-xxxx" , aby ustawić bieżący kontekst subskrypcji. Ustaw bieżący kontekst subskrypcji na subskrypcję, w której wdrożono aplikację internetową.

$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

Następne kroki