Aktivieren der Integration virtueller Netzwerke in Azure App Service
Durch die Integration in ein virtuelles Azure-Netzwerk aus Ihrer App Service-App können Sie aus Ihrer App heraus private Ressourcen innerhalb des virtuellen Netzwerks erreichen.
Voraussetzungen
Die Integrationsfunktion für virtuelle Netzwerke erfordert:
- Ein App Service-Tarif, der die Integration virtueller Netzwerke unterstützt.
- Ein virtuelles Netzwerk in derselben Region mit einem leeren Subnetz.
Das Subnetz muss an „Microsoft.Web/serverFarms“ delegiert sein. Wenn die Delegierung nicht vor der Integration erfolgt, wird diese Delegierung durch den Bereitstellungsprozess konfiguriert. Dem Subnetz muss ein IPv4-/28
-Block (16 Adressen) zugeordnet sein. Es wird empfohlen, mindestens 64 Adressen (IPv4-/26
-Block) vorzuhalten, um eine maximale horizontale Skalierung zu ermöglichen.
Wenn sich das virtuelle Netzwerk in einem anderen Abonnement als die App befindet, müssen Sie sicherstellen, dass das Abonnement beim virtuellen Netzwerk für den Ressourcenanbieter Microsoft.Web
registriert ist. Sie können den Anbieter explizit registrieren, indem Sie diese Dokumentation befolgen. Er wird jedoch automatisch registriert, wenn Sie die erste Web-App in einem Abonnement erstellen.
Konfigurieren im Azure-Portal
Wechseln Sie im App Service-Portal zu Netzwerk. Wählen Sie unter Konfiguration für ausgehenden Datenverkehr die Option Integration eines virtuellen Netzwerks aus.
Wählen Sie Integration eines virtuellen Netzwerks hinzufügen au.
Die Dropdownliste enthält alle virtuellen Netzwerke in Ihrem Abonnement in derselben Region. Wählen Sie ein leeres, bereits vorhandenes Subnetz aus, oder erstellen Sie ein neues Subnetz.
Während der Integration wird Ihre App neu gestartet. Wenn die Integration abgeschlossen ist, werden Details zu dem virtuellen Netzwerk angezeigt, in das Sie integriert sind.
Konfigurieren mit der Azure CLI
Sie können die Integration virtueller Netzwerke auch mithilfe der Azure CLI konfigurieren:
az webapp vnet-integration add --resource-group <group-name> --name <app-name> --vnet <vnet-name> --subnet <subnet-name>
Hinweis
Der Befehl überprüft, ob das Subnetz an „Microsoft.Web/serverFarms“ delegiert ist, und wendet die erforderliche Delegierung an, wenn sie nicht konfiguriert ist. Wenn das Subnetz bereits konfiguriert war und Sie nicht über Berechtigungen zu dessen Überprüfung verfügen, oder wenn sich das virtuelle Netzwerk in einem anderen Abonnement befindet, können Sie den Parameter --skip-delegation-check
verwenden, um die Überprüfung zu umgehen.
Konfigurieren mit Azure PowerShell
Bereiten Sie Parameter vor.
$siteName = '<app-name>'
$vNetResourceGroupName = '<group-name>'
$webAppResourceGroupName = '<group-name>'
$vNetName = '<vnet-name>'
$integrationSubnetName = '<subnet-name>'
$vNetSubscriptionId = '<subscription-guid>'
Hinweis
Wenn sich das virtuelle Netzwerk in einem anderen Abonnement als die Web-App befindet, können Sie den Befehl Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" verwenden, um den aktuellen Abonnementkontext festzulegen. Legen Sie den aktuellen Abonnementkontext auf das Abonnement fest, in dem das virtuelle Netzwerk bereitgestellt wurde.
Überprüfen Sie, ob das Subnetz an „Microsoft.Web/serverFarms“ delegiert wurde.
$vnet = Get-AzVirtualNetwork -Name $vNetName -ResourceGroupName $vNetResourceGroupName
$subnet = Get-AzVirtualNetworkSubnetConfig -Name $integrationSubnetName -VirtualNetwork $vnet
Get-AzDelegation -Subnet $subnet
Wenn Ihr Subnetz nicht an „Microsoft.Web/serverFarms“ delegiert wurde, fügen Sie die Delegierung mithilfe der folgenden Befehle hinzu:
$subnet = Add-AzDelegation -Name "myDelegation" -ServiceName "Microsoft.Web/serverFarms" -Subnet $subnet
Set-AzVirtualNetwork -VirtualNetwork $vnet
Konfigurieren Sie die Integration in ein virtuelles Netzwerks.
Hinweis
Wenn sich die Web-App in einem anderen Abonnement als das virtuelle Netzwerk befindet, können Sie den Befehl Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" verwenden, um den aktuellen Abonnementkontext festzulegen. Legen Sie den aktuellen Abonnementkontext auf das Abonnement fest, in dem die Web-App bereitgestellt wurde.
$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