Поделиться через


Включение интеграции с виртуальной сетью в Службе приложений Azure

Интеграция с виртуальной сетью Azure из приложения Служба приложений Azure позволяет получать доступ к частным ресурсам приложения в виртуальной сети.

Предварительные требования

Для интеграции с виртуальной сетью требуется:

Подсеть должна быть делегирована в Microsoft.Web/serverFarms. Если делегирование не выполнено до интеграции, процесс подготовки настраивает это делегирование. Подсети необходимо выделить блок IPv4 /28 (16 адресов). Рекомендуется использовать не менее 64 адресов (блоков IPv4 /26), чтобы обеспечить максимальное горизонтальное масштабирование.

Если виртуальная сеть находится не в той же подписке, что и приложение, необходимо убедиться, что подписка с виртуальной сетью зарегистрирована для поставщика ресурсов Microsoft.Web. Вы можете явно зарегистрировать поставщика, следуя этой документации, но он автоматически регистрируется при создании первого веб-приложения в подписке.

Настройка на портале Azure

  1. Откройте раздел интерфейса Сеть на портале Службы приложений. В разделе Конфигурация исходящего трафика выберите Интеграция с виртуальной сетью.

  2. Выберите Добавить интеграцию с виртуальной сетью.

    Снимок экрана: выбор интеграции с виртуальной сетью.

  3. Раскрывающийся список содержит все виртуальные сети в подписке в одном регионе. Выберите пустую существующую подсеть или создайте новую подсеть.

    Снимок экрана: выбор виртуальной сети.

Во время интеграции приложение перезапускается. После завершения интеграции вы увидите сведения о виртуальной сети, с которыми вы интегрированы.

Настройка с помощью Azure CLI

Вы также можете настроить интеграцию с виртуальной сетью с помощью Azure CLI:

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

Примечание

Команда проверяет, делегирована ли подсеть в Microsoft.Web/serverFarms, и применяет необходимое делегирование, если оно не настроено. Если подсеть настроена и у вас нет разрешений на ее проверка или виртуальная сеть находится в другой подписке, можно использовать --skip-delegation-check параметр для обхода проверки.

Настройка с помощью Azure PowerShell

Подготовка параметров.

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

Примечание

Если виртуальная сеть находится в другой подписке, отличной от webapp, можно использовать команду Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" , чтобы задать контекст текущей подписки. Задайте для текущего контекста подписки подписку, в которой была развернута виртуальная сеть.

Проверьте, делегирована ли подсеть Microsoft.Web/serverFarms.

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

Если подсеть не делегирована Microsoft.Web/serverFarms, добавьте делегирование с помощью приведенных ниже команд.

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

Настройка интеграции с виртуальной сетью.

Примечание

Если веб-приложение находится в другой подписке, отличной от виртуальной сети, можно использовать команду Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" , чтобы задать контекст текущей подписки. Задайте для текущего контекста подписки подписку, в которой было развернуто веб-приложение.

$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

Дальнейшие действия