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


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

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

Необходимые компоненты

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

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

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

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

  1. Перейдите в приложение в портал Azure. Щелкните Параметры>Сети. В разделе "Конфигурация исходящего трафика" рядом с интеграцией виртуальной сети выберите ссылку "Не настроен".

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

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

  3. Выберите подписку и виртуальную сеть.

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

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

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

Настройка с помощью 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

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

    $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" команду для задания текущего контекста подписки. Задайте для текущего контекста подписки подписку, в которой развернута виртуальная сеть.

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

    $vnet = Get-AzVirtualNetwork -Name $vNetName -ResourceGroupName $vNetResourceGroupName
    $subnet = Get-AzVirtualNetworkSubnetConfig -Name $integrationSubnetName -VirtualNetwork $vnet
    Get-AzDelegation -Subnet $subnet
    
  3. Если подсеть не делегирована Microsoft.Web/serverFarms, добавьте делегирование с помощью этих команд.

    $subnet = Add-AzDelegation -Name "myDelegation" -ServiceName "Microsoft.Web/serverFarms" -Subnet $subnet
    Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  4. Настройка интеграции виртуальной сети.

    $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" команду для задания текущего контекста подписки. Задайте для текущего контекста подписки подписку, в которой развернуто веб-приложение.