Compartilhar via


Habilitar a integração de rede virtual no serviço Azure App

Por meio da integração com uma rede virtual do Azure do seu aplicativo do Serviço de Aplicativo do Azure, você pode acessar recursos privados de seu aplicativo na rede virtual.

Pré-requisitos

O recurso de integração de rede virtual exige:

A sub-rede deve ser delegada para Microsoft. Web/serverFarms. Se a delegação não for feita antes da integração, o processo de provisionamento configurará essa delegação. A sub-rede deve ser alocada um /28 bloco IPv4 (16 endereços). É recomendável ter um mínimo de 64 endereços (bloco IPv4 /26) para permitir a escala horizontal máxima.

Se a rede virtual estiver em uma assinatura diferente do aplicativo, certifique-se de registrar a assinatura com a rede virtual para o provedor de recursos Microsoft.Web. Você pode registrar explicitamente o provedor seguindo esta documentação, mas ele é registrado automaticamente ao criar o primeiro aplicativo Web em uma assinatura.

Configuração no portal do Azure

  1. Acesse a Rede no portal do Serviço de Aplicativo. Em Configuração de tráfego de saída, selecione Integração de rede virtual.

  2. Selecione Adicionar integração de rede virtual.

    Screenshot that shows selecting Virtual network integration.

  3. A lista suspensa contém todas as redes virtuais em sua assinatura na mesma região. Selecione uma sub-rede preexistente vazia ou crie uma nova sub-rede.

    Screenshot that shows selecting the virtual network.

Durante a integração, o aplicativo é reiniciado. Quando a integração for concluída, você verá detalhes sobre a rede virtual à qual está integrado.

Configurar com a CLI do Azure

Você também pode configurar a integração de rede virtual usando a CLI do Azure:

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

Observação

O comando verifica se a sub-rede é delegada para Microsoft.Web/serverFarms e aplica a delegação necessária se ela não está configurada. Se a sub-rede já tiver sido configurada e você não tiver permissões para verificar isso, ou se a rede virtual estiver em outra assinatura, você poderá usar o parâmetro --skip-delegation-check para ignorar a validação.

Configurar com Microsoft Azure PowerShell

Preparar parâmetros.

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

Observação

Se a rede virtual estiver em outra assinatura que não seja webapp, você poderá usar o comando Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" para definir o contexto de assinatura atual. Defina o contexto de assinatura atual para a assinatura em que a rede virtual foi implantada.

Verifique se a sub-rede foi delegada para Microsoft.Web/serverFarms.

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

Se a sub-rede não for delegada a Microsoft.Web/serverFarms, adicione a delegação usando os comandos abaixo.

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

Configure a integração de rede virtual.

Observação

Se o webapp estiver em outra assinatura que não seja rede virtual, você poderá usar o comando Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" para definir o contexto de assinatura atual. Defina o contexto de assinatura atual para a assinatura em que o aplicativo Web foi implantado.

$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

Próximas etapas