Habilitación de la integración con red virtual en Azure App Service

Mediante la integración con una red virtual de Azure desde la aplicación de Azure App Service, puede acceder a recursos privados desde la aplicación dentro de la red virtual.

Requisitos previos

La característica de integración de red virtual requiere:

La subred se debe delegar a Microsoft.Web/serverFarms. Si la delegación no se realiza antes de la integración, el proceso de aprovisionamiento configura esta delegación. Se debe asignar un bloque IPv4 /28 (16 direcciones) a la subred. Se recomienda tener un mínimo de 64 direcciones (bloque IPv4 /26) para permitir la escala horizontal máxima.

Si la red virtual se encuentra en una suscripción diferente que la aplicación, debe asegurarse de que la suscripción con la red virtual esté registrada para el proveedor de recursos Microsoft.Web. Puede registrar explícitamente el proveedor siguiendo esta documentación, pero también se registra automáticamente al crear la primera aplicación web en una suscripción.

Configuración en Azure Portal

  1. Vaya a Redes en el portal de App Service. En Configuración del tráfico saliente, seleccione Integración de red virtual.

  2. Seleccione Añadir integración de red virtual

    Screenshot that shows selecting Virtual network integration.

  3. La lista desplegable contiene todas las redes virtuales de la suscripción en la misma región. Seleccione una subred existente vacía o cree una nueva.

    Screenshot that shows selecting the virtual network.

Durante la integración, la aplicación se reinicia. Una vez finalizada la integración, verá los detalles de la red virtual con la que está integrado.

Configuración con la CLI de Azure

También puede configurar la integración de red virtual mediante la CLI de Azure:

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

Nota:

El comando comprueba si la subred está delegada en Microsoft.Web/serverFarms y aplica la delegación necesaria si no está configurada. Si ya se configuró y no tiene permisos para comprobarlo o si la red virtual se encuentra en otra suscripción, puede utilizar el parámetro --skip-delegation-check para omitir la validación.

Configuración con Azure PowerShell

Prepare los parámetros.

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

Nota:

Si la red virtual está en otra suscripción distinta de webapp, puede usar el comando Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx-xxxx" para establecer el contexto de suscripción actual. Establezca el contexto de suscripción actual en la suscripción donde se implementó la red virtual.

Compruebe que la subred se delega en Microsoft.Web/serverFarms.

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

Si la subred no se delega en Microsoft.Web/serverFarms, agregue delegación mediante los comandos siguientes.

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

Configuración de la integración de red virtual.

Nota:

Si la aplicación web está en otra suscripción distinta de la red virtual, puede usar el comando Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" para establecer el contexto de suscripción actual. Establezca el contexto de suscripción actual en la suscripción donde se implementó la aplicación 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

Pasos siguientes