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:
- Warstwa cenowa App Service obsługującą integrację sieci wirtualnej.
- Sieć wirtualna w tym samym regionie z pustą podsiecią.
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
Przejdź do obszaru Sieć w portalu App Service. W obszarze Konfiguracja ruchu wychodzącego wybierz pozycję Integracja z siecią wirtualną.
Wybierz pozycję Dodaj integrację z siecią wirtualną.
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ć.
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