Abilitare l'integrazione della rete virtuale in Servizio app di Azure

Grazie all'integrazione con una rete virtuale di Azure dall'app Servizio app di Azure, è possibile raggiungere risorse private dall'app all'interno della rete virtuale.

Prerequisiti

La funzionalità di integrazione della rete virtuale richiede:

La subnet deve essere delegata a Microsoft.Web/serverFarms. Se la delega non viene eseguita prima dell'integrazione, il processo di provisioning configura questa delega. La subnet deve essere allocata da un blocco IPv4 /28 (16 indirizzi). È consigliabile avere almeno 64 indirizzi (blocco IPv4 /26 ) per consentire la scalabilità orizzontale massima.

Se la rete virtuale si trova in una sottoscrizione diversa rispetto all'app, è necessario assicurarsi che la sottoscrizione con la rete virtuale sia registrata per il Microsoft.Web provider di risorse. È possibile registrare in modo esplicito il provider seguendo questa documentazione, ma viene registrato automaticamente quando si crea la prima app Web in una sottoscrizione.

Configurare nel portale di Azure

  1. Passare a Rete nel portale di servizio app. In Configurazione del traffico in uscita selezionare Integrazione della rete virtuale.

  2. Selezionare Aggiungi integrazione della rete virtuale.

    Screenshot che mostra la selezione dell'integrazione della rete virtuale.

  3. L'elenco a discesa contiene tutte le reti virtuali nella sottoscrizione nella stessa area. Selezionare una subnet preesistente vuota o creare una nuova subnet.

    Screenshot che mostra la selezione della rete virtuale.

Durante l'integrazione, l'app viene riavviata. Al termine dell'integrazione, vengono visualizzati i dettagli della rete virtuale con cui si è integrati.

Configurare con l'interfaccia della riga di comando di Azure

È anche possibile configurare l'integrazione della rete virtuale usando l'interfaccia della riga di comando di Azure:

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

Nota

Il comando verifica se la subnet è delegata a Microsoft.Web/serverFarms e applica la delega necessaria se non è configurata. Se la subnet è stata configurata e non si dispone delle autorizzazioni per controllarla o se la rete virtuale si trova in un'altra sottoscrizione, è possibile usare il --skip-delegation-check parametro per ignorare la convalida.

Configurare con Azure PowerShell

Preparare i parametri.

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

Nota

Se la rete virtuale si trova in un'altra sottoscrizione di webapp, è possibile usare il comando Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" per impostare il contesto di sottoscrizione corrente. Impostare il contesto di sottoscrizione corrente sulla sottoscrizione in cui è stata distribuita la rete virtuale.

Verificare se la subnet è delegata a Microsoft.Web/serverFarms.

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

Se la subnet non è delegata a Microsoft.Web/serverFarms, aggiungere la delega usando i comandi seguenti.

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

Configurare l'integrazione della rete virtuale.

Nota

Se l'app Web si trova in un'altra sottoscrizione della rete virtuale, è possibile usare il comando Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" per impostare il contesto di sottoscrizione corrente. Impostare il contesto di sottoscrizione corrente sulla sottoscrizione in cui è stata distribuita l'app Web.

$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

Passaggi successivi