Włączanie integracji z siecią wirtualną w usłudze 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 następujących elementów:

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

Jeśli sieć wirtualna znajduje się w innej subskrypcji niż aplikacja, musisz upewnić się, że subskrypcja z siecią wirtualną jest zarejestrowana dla dostawcy Microsoft.Web 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 obszaru Sieć w portalu App Service. W obszarze Konfiguracja ruchu wychodzącego wybierz pozycję Integracja z siecią wirtualną.

  2. Wybierz pozycję Dodaj integrację z siecią wirtualną.

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

  3. Lista rozwijana zawiera wszystkie sieci wirtualne w twojej subskrypcji w tym samym regionie. Wybierz pustą wcześniej istniejącą podsieć lub utwórz nową podsieć.

    Zrzut ekranu przedstawiający wybieranie sieci wirtualnej.

Podczas integracji aplikacja jest uruchamiana ponownie. Po zakończeniu integracji zostaną wyświetlone szczegółowe informacje o sieci wirtualnej, z którą jest zintegrowana.

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 domeny 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 pominąć 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-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 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 serwera 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-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