Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Интеграция с виртуальной сетью Azure из приложения службы приложение Azure позволяет получить доступ к частным ресурсам из приложения в виртуальной сети.
Необходимые компоненты
Для функции интеграции с виртуальной сетью требуется:
- Ценовая категория Службы приложений, которая поддерживает интеграцию с виртуальной сетью.
- Виртуальная сеть в том же регионе с пустой подсетью.
Подсеть должна быть делегирована в Microsoft.Web/serverFarms. Если перед интеграцией не делегироваться, процесс подготовки настраивает это делегирование. Подсети необходимо выделить блок IPv4 /28
(16 адресов). Рекомендуется использовать не менее 64 адресов (блоков IPv4 /26
), чтобы обеспечить максимальное горизонтальное масштабирование.
Если виртуальная сеть находится в подписке, отличной от приложения, убедитесь, что подписка с виртуальной сетью зарегистрирована для Microsoft.Web
поставщика ресурсов. Поставщик регистрируется при создании первого веб-приложения в подписке. Чтобы явно зарегистрировать поставщика, см. раздел "Регистрация поставщика ресурсов".
Настройка на портале Azure
Перейдите в приложение в портал Azure. Щелкните Параметры>Сети. В разделе "Конфигурация исходящего трафика" рядом с интеграцией виртуальной сети выберите ссылку "Не настроен".
Выберите "Добавить интеграцию виртуальной сети".
Выберите подписку и виртуальную сеть.
В подсети раскрывающийся список содержит все виртуальные сети в подписке в одном регионе. Выберите пустую существующую подсеть или создайте новую. Нажмите Подключиться.
Во время интеграции приложение перезапускается. После завершения интеграции отображаются сведения о виртуальной сети, с которыми вы интегрированы.
Настройка с помощью 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>'
Примечание.
Если виртуальная сеть находится в другой подписке, отличной от веб-приложения, можно использовать
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
Настройка интеграции виртуальной сети.
$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
Примечание.
Если веб-приложение находится в другой подписке, отличной от виртуальной сети, можно использовать
Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx"
команду для задания текущего контекста подписки. Задайте для текущего контекста подписки подписку, в которой развернуто веб-приложение.