Интеграция приложения с виртуальной сетью Azure

Эта статья описывает функцию Службы приложений Azure — интеграцию с виртуальной сетью, а также настройку этой функции для приложений в Службе приложений. Виртуальные сети Azure позволяют размещать многие ресурсы Azure в сети, недоступной из Интернета. Функция интеграции с виртуальной сетью Службы приложений позволяет приложениям получать доступ к ресурсам в виртуальной сети или через нее.

Примечание.

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

Служба приложений реализована в виде двух моделей:

  • Ценовые категории выделенных вычислительных ресурсов, включая "Базовый", "Стандартный", "Премиум", "Премиум v2" и "Премиум v3".
  • Среда службы приложений, которая развертывается непосредственно в виртуальной сети с выделенной вспомогательной инфраструктурой и использует ценовые категории "Изолированный" и "Изолированный v2".

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

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

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

Функции, не поддерживаемые при интеграции с виртуальной сетью:

  • подключение диска;
  • присоединение к домену Active Directory на Windows Server;
  • NetBIOS.

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

  • Ресурсы в виртуальной сети, с которой вы интегрируетесь.
  • Ресурсы в виртуальных сетях, подключенных к виртуальной сети, интегрированной с вашим приложением, с помощью пиринга, включая соединения глобального пиринга.
  • Ресурсы в подключениях Azure ExpressRoute.
  • Службы, защищенные конечной точкой службы.
  • Службы с поддержкой частных конечных точек.

При использовании интеграции с виртуальной сетью можно использовать следующие функции сети Azure:

  • Группы безопасности сети (NSG): вы можете заблокировать исходящий трафик с помощью группы безопасности сети, используемой в подсети интеграции. Правила для входящих подключений не применяются, так как вы не можете использовать интеграцию с виртуальной сетью для предоставления входящего доступа к своему приложению.
  • Таблицы маршрутов (UDR). Можно поместить таблицу маршрутов в подсеть интеграции для отправки исходящего трафика.
  • Шлюз NAT. Шлюз NAT можно использовать для получения выделенного исходящего IP-адреса и устранения нехватки портов SNAT.

Узнайте, как включить интеграцию с виртуальной сетью.

Как работает интеграция виртуальной сети

Приложения размещаются в Службе приложений с рабочими ролями. Интеграция виртуальной сети выполняется путем подключения виртуальных интерфейсов к рабочим ролям с адресами в делегированной подсети. Используемые виртуальные интерфейсы не являются ресурсами, к которым клиенты имеют прямой доступ. Поскольку исходящий адрес находится в вашей виртуальной сети, он имеет доступ к большинству ресурсов в ней или через нее аналогично виртуальной машине в этой виртуальной сети.

Схема, показывающая, как работает интеграция виртуальной сети.

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

Если включена маршрутизация всего трафика, то весь исходящий трафик отправляется в виртуальную сеть. Если маршрутизация трафика не включена, в виртуальную сеть отправляется только частный трафик (RFC1918) и конечные точки службы, настроенные в подсети интеграции. Исходящий трафик в Интернет направляется непосредственно из приложения.

Функция интеграции виртуальной сети поддерживает два виртуальных интерфейса на рабочую роль. Два виртуальных интерфейса на рабочую роль означают две интеграции виртуальных сетей для каждого плана Служба приложений. Другими словами, план Служба приложений может иметь интеграцию виртуальной сети с двумя подсетями или виртуальными сетями. Приложения в том же плане Служба приложений могут использовать только одну из интеграции виртуальной сети с определенной подсетью, что означает, что приложение может иметь только одну интеграцию виртуальной сети в определенное время.

Требования к подсети

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

При уменьшении размера экземпляра количество IP-адресов, используемых планом Служба приложений, временно увеличивается во время завершения операции масштабирования. Перед отменой подготовки существующих экземпляров новые экземпляры должны быть полностью операционными. Операция масштабирования влияет на реальные доступные поддерживаемые экземпляры для заданного размера подсети. Обновления платформы нуждаются в бесплатных IP-адресах, чтобы гарантировать, что обновления могут произойти без прерываний исходящего трафика. Наконец, после увеличения масштаба, уменьшения или завершения операций может потребоваться короткий промежуток времени до освобождения IP-адресов. В редких случаях эта операция может составлять до 12 часов.

Так как размер подсети невозможно изменить после назначения, используйте подсеть, которая достаточно велика для любого масштаба, которого может достигнуть ваше приложение. Также следует зарезервировать IP-адреса для обновлений платформы. Чтобы избежать проблем с емкостью подсети, используйте подсеть /26 с 64 адресами. При создании подсетей в портал Azure в рамках интеграции с виртуальной сетью требуется минимальный размер/27. Если подсеть уже существует перед интеграцией через портал, можно использовать /28 подсеть.

С помощью соединения подсети с несколькими планами (MPSJ) можно присоединить несколько планов Служба приложений в одной подсети. Все Служба приложений планы должны находиться в одной подписке, но виртуальная сеть или подсеть может находиться в другой подписке. Каждому экземпляру из каждого плана Служба приложений требуется IP-адрес из подсети, а для использования MPSJ требуется минимальный размер подсети/26. Если вы планируете присоединиться ко многим и (или) крупномасштабным планам, следует запланировать более крупные диапазоны подсети.

Примечание.

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

  • Минимальное требование к размеру /26 подсети в настоящее время не применяется, но будет применяться в общедоступной версии. Если вы подключили несколько планов к меньшей подсети во время предварительной версии, они по-прежнему будут работать, но вы не сможете подключить дополнительные планы и при отключении вы не сможете снова подключиться.
  • В настоящее время нет проверки, если подсеть имеет доступные IP-адреса, поэтому вы можете присоединиться к плану N+1, но экземпляры не получат IP-адрес. Доступные IP-адреса можно просмотреть на странице интеграции с виртуальной сетью в портал Azure в приложениях, которые уже подключены к подсети.

Ограничения для контейнеров Windows

Контейнеры Windows используют дополнительный IP-адрес для каждого приложения для каждого экземпляра плана Служба приложений и необходимо соответствующим образом размер подсети. Например, если у вас есть 10 экземпляров плана контейнеров Windows Служба приложений с четырьмя приложениями, вам потребуется 50 IP-адресов и дополнительных адресов для поддержки горизонтального (в/вне) масштабирования.

Пример вычисления:

Для каждого экземпляра плана Служба приложений необходимо: 4 приложения контейнеров Windows = 4 IP-адреса 1 IP-адреса на экземпляр плана Служба приложений + 1 = 5 IP-адресов

Для 10 экземпляров: 5 x 10 = 50 IP-адресов на план Служба приложений

Так как у вас есть 1 Служба приложений плана, 1 x 50 = 50 IP-адресов.

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

Пример вычисления:

Служба приложений экземпляр плана с четырьмя приложениями, работающими и использующими интеграцию виртуальной сети. Приложения подключены к двум разным подсетям (подключения к виртуальной сети). Для этой конфигурации требуется семь сетевых единиц (1 рабочих и 2 подключения + 4 приложения). Минимальный размер для выполнения этой конфигурации — I2v2 (четыре ядра x 3 единицы = 12 единиц).

С помощью I1v2 можно запускать не более четырех приложений с помощью одного подключения (1) или 3 приложений с помощью 2 подключений.

Разрешения

Для настройки интеграции виртуальной сети с помощью портал Azure интерфейса командной строки или непосредственного задания virtualNetworkSubnetId свойства сайта необходимо иметь по крайней мере следующие разрешения на управление доступом на основе ролей или на более высоком уровне.

Действие Description
Microsoft.Network/virtualNetworks/read Чтение определения виртуальной сети
Microsoft.Network/virtualNetworks/subnets/read Чтение определения подсети виртуальной сети
Microsoft.Network/virtualNetworks/subnets/join/action Присоединяет виртуальную сеть.

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

Маршруты

Вы можете контролировать, какой трафик проходит через интеграцию с виртуальной сетью. Существует три типа маршрутизации, которые следует учитывать при настройке интеграции виртуальной сети. Маршрутизация приложений определяет, какой трафик направляется из приложения и в виртуальную сеть. Маршрутизация конфигурации затрагивает операции, выполняемые до или во время запуска приложения. Примерами являются параметры извлечения образа контейнера и приложения со ссылкой на Key Vault. Сетевая маршрутизация дает возможность управлять маршрутизацией трафика приложений и конфигурации из виртуальной сети и наружу.

С помощью параметров маршрутизации приложений или конфигурации можно настроить трафик, отправляемый через интеграцию виртуальной сети. Трафик распространяется только на маршрутизацию сети, если он отправляется через интеграцию виртуальной сети.

Маршрутизация заявлений

Маршрутизация приложений применяется к трафику, который отправляется из приложения после его запуска. Сведения о трафике во время запуска приведены в разделе Маршрутизация конфигурации. При настройке маршрутизации приложений в виртуальную сеть можно направлять либо весь трафик, либо только частный трафик (также известный как трафик RFC1918). Это поведение можно настроить с помощью параметра исходящего интернет-трафика. Если маршрутизация исходящего интернет-трафика отключена, приложение направляет только частный трафик в виртуальную сеть. Если вы хотите перенаправить весь исходящий трафик приложения в виртуальную сеть, убедитесь, что исходящий интернет-трафик включен.

  • Только трафик, настроенный в рамках маршрутизации приложений или конфигурации, подпадает под действие групп безопасности сети и определяемых пользователем маршрутов, которые применяются к подсети интеграции.
  • Если включена маршрутизация исходящих интернет-трафика, исходный адрес исходящего трафика из приложения по-прежнему является одним из IP-адресов, перечисленных в свойствах приложения. Если вы направляете трафик через брандмауэр или шлюз NAT, исходный IP-адрес поступает из этой службы.

Узнайте, как настроить маршрутизацию приложений.

Примечание.

Для Службы приложений при маршрутизации трафика SMTP через интеграцию виртуальной сети поддерживается исходящее подключение SMTP (порт 25). Возможность поддержки определяется параметром для подписки, в которой развернута виртуальная сеть. Для виртуальных сетей и подсетей, созданных до 1 августа 2022 г. необходимо инициировать временное изменение конфигурации виртуальной сети или подсети, чтобы синхронизировать параметр из подписки. Например, можно добавить временную подсеть, связать или отключить связь группы безопасности сети или временно настроить конечную точку службы. Подробные сведения см. в статье Устранение проблем с исходящими SMTP-подключениями в Azure.

Маршрутизация конфигурации

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

Общая папка содержимого

Приведение собственного хранилища для содержимого часто используется в Функциях, где общая папка содержимого настроена как часть приложения "Функции".

Чтобы маршрутизировать трафик общей папки с помощью интеграции виртуальной сети, необходимо убедиться, что параметр маршрутизации настроен. Узнайте , как настроить маршрутизацию общего ресурса содержимого.

Помимо настройки маршрутизации, необходимо также убедиться, что любой брандмауэр или группа безопасности сети, настроенная на трафик из подсети, разрешает трафик через порт 443 и 445.

Извлечение образа контейнера

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

Резервное копирование и восстановление

Служба приложений имеет встроенную резервную копию и восстановление, но если вы хотите создать резервную копию в собственной учетной записи хранения, можно использовать настраиваемую функцию резервного копирования и восстановления. Если вы хотите перенаправить трафик в учетную запись хранения через интеграцию виртуальной сети, необходимо настроить параметр маршрута. Резервное копирование базы данных не поддерживается при интеграции виртуальной сети.

Параметры приложения с использованием ссылок Key Vault

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

Примечание.

  • Настройка сертификатов SSL/TLS из частных хранилищ ключей сейчас не поддерживается.
  • Журналы Службы приложений в частных учетных записях хранения сейчас не поддерживаются. Мы рекомендуем использовать журнал ведения диагностики и разрешить доверенные службы для учетной записи хранения.

Параметры приложения маршрутизации

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

Вы по-прежнему можете использовать существующий WEBSITE_VNET_ROUTE_ALL параметр приложения для настройки маршрутизации приложений.

Параметры приложения также существуют для некоторых параметров маршрутизации конфигурации. Эти параметры приложения именуются WEBSITE_CONTENTOVERVNET и WEBSITE_PULL_IMAGE_OVER_VNET.

Сетевая маршрутизация

Таблицы маршрутов можно использовать для маршрутизации исходящего трафика из приложения без ограничений. Местами назначения часто являются брандмауэры и шлюзы. Для блокирования исходящего трафика к ресурсам в виртуальной сети или Интернете, можно также использовать группу безопасности сети (NSG). Группа безопасности сети, применяемая к подсети интеграции, действует независимо от таблиц маршрутов, применяемых к подсети интеграции.

Таблицы маршрутизации и группы безопасности сети применяются только к трафику, перенаправляемому через интеграцию с виртуальной сетью. Для получения дополнительных сведений см. описание маршрутизации приложений и маршрутизации конфигурации. Маршруты не применяются к ответам из входящих запросов приложений и правил входящего трафика в NSG не применяются к приложению. Интеграция виртуальной сети влияет только на исходящий трафик из приложения. Чтобы контролировать входящий трафик в приложение, используйте функцию ограничений доступа или частные конечные точки.

При настройке групп безопасности сети или таблиц маршрутов, которые применяются к исходящему трафику, необходимо убедиться, что вы считаете зависимости приложения. Зависимости приложений включают конечные точки, необходимые приложению во время выполнения. Помимо API и служб, которые вызывает приложение, эти конечные точки также могут быть производными конечными точками, такими как список отзыва сертификатов (CRL) проверка конечных точек и конечной точки проверки подлинности, например Идентификатор Microsoft Entra. Если вы используете непрерывное развертывание в Службе приложений, вам, возможно, также придется разрешить конечные точки в зависимости от типа и языка. В частности, для непрерывного развертывания Linux необходимо разрешить oryx-cdn.microsoft.io:443. Для Python также необходимо разрешить files.pythonhosted.org, pypi.org.

Если требуется маршрутизировать исходящий трафик локально, можно использовать таблицу маршрутизации для отправки исходящего трафика на шлюз Azure ExpressRoute. Если вы направляете трафик в шлюз, установите во внешней сети маршруты для возврата ответов. Маршруты протокола BGP также влияют на трафик приложения. Если у вас есть маршруты BGP, например для шлюза ExpressRoute, они повлияют на исходящий трафик приложения. Как и определяемые пользователем маршруты, маршруты BGP влияют на трафик в соответствии с настройками области маршрутизации.

Конечные точки служб

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

  1. Настройте интеграцию виртуальной сети с веб-приложением, чтобы подключиться к определенной подсети для интеграции.
  2. Перейти в целевую службу и настроить конечные точки службы для подсети интеграции.

Частные конечные точки

Если вы хотите выполнять вызовы к частным конечным точкам, убедитесь, что поиск в DNS разрешается в частную конечную точку. Можно принудительно применить это поведение одним из следующих способов.

  • Настроить интеграцию с частными зонами Azure DNS. Когда в виртуальной сети нет настраиваемого DNS-сервера, интеграция выполняется автоматически, если зоны связаны с виртуальной сетью.
  • Управлением частной конечной точкой на DNS-сервере, используемом приложением. Для управления конфигурацией необходимо знать IP-адрес частной конечной точки. Затем укажите конечную точку, с которой вы пытаетесь связаться по этому адресу, используя запись A.
  • Настройка собственного DNS-сервера для перенаправления в частные зоны Azure DNS.

частные зоны Azure DNS;

После интеграции приложения с виртуальной сетью используется тот же DNS-сервер, с которым настроена виртуальная сеть. Если пользовательская служба DNS не указана, используется служба DNS Azure по умолчанию и все частные зоны, связанные с этой виртуальной сетью.

Ограничения

Существуют некоторые ограничения, связанные с интеграцией виртуальной сети:

  • Эта функция доступна во всех развертываниях Службы приложений с планами "Премиум v2" и "Премиум v3". Она также доступна в плане «Базовый» и «Стандартный», но только в новых развертываниях Службы приложений. Если вы используете более раннее развертывание, эту функцию можно использовать только начиная с плана "Премиум v2" службы приложений. Если вы хотите проверить, можете ли вы использовать эту функцию в плане "Базовый" или "Стандартный", создайте приложение в плане "Премиум v3" Службы приложений. Эти планы поддерживаются только в новых развертываниях. При желании после создания плана вы можете уменьшить масштаб.
  • Эта функция недоступна для приложений изолированного плана в Среда службы приложений.
  • Вы не можете получить доступ к ресурсам через пиринговые подключения к классическим виртуальным сетям.
  • Для этой функции требуется неиспользуемая подсеть с блоком IPv4-адресов /28 или больше в виртуальной сети Azure Resource Manager. Для MPSJ требуется /26 блок или размер.
  • Приложение и виртуальная сеть должны находиться в одном регионе.
  • Для виртуальной сети интеграции не могут быть определены диапазоны адресов IPv6.
  • Для подсети интеграции не могут быть включены политики конечных точек службы.
  • Невозможно удалить виртуальную сеть с интегрированным приложением. Перед удалением виртуальной сети необходимо удалить интеграцию.
  • Для каждого плана Служба приложений не может быть более двух интеграции виртуальной сети. Несколько приложений в одном плане Служба приложений могут использовать одну и ту же интеграцию виртуальной сети.
  • Вы не можете изменить подписку приложения или плана во время интеграции виртуальной сети.

Доступ к локальным ресурсам

Дополнительная конфигурация не требуется для подключения функции интеграции виртуальной сети через виртуальную сеть к локальным ресурсам. Достаточно подключить виртуальную сеть к локальным ресурсам с помощью ExpressRoute или VPN типа "сеть — сеть".

Пиринг

Если вы используете пиринг с интеграцией виртуальной сети, вам больше не нужно настраивать.

Управление интеграцией с виртуальной сетью

Подключение к виртуальной сети и отключение от нее совершается на уровне приложений. Операции, которые могут повлиять на интеграцию нескольких приложений с виртуальной сетью, выполняются на уровне плана службы приложений. Открыв в приложении раздел >Сеть>Интеграция виртуальной сети, вы можете просмотреть подробные сведения о своей виртуальной сети. Аналогичную информацию можно увидеть на уровне плана службы приложений в разделе План службы приложений>Сеть>Интеграция виртуальной сети.

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

Частный IP-адрес, назначенный экземпляру, предоставляется через переменную среды WEBSITE_PRIVATE_IP. В пользовательском интерфейсе консоли Kudu также отображается список переменных среды, доступных для веб-приложения. Этот IP-адрес назначается из диапазона адресов интегрированной подсети. Этот IP-адрес используется веб-приложением для подключения к ресурсам через виртуальную сеть Azure.

Примечание.

Значение WEBSITE_PRIVATE_IP привязано к изменению. Однако он будет IP-адресом в диапазоне адресов подсети интеграции, поэтому вам потребуется разрешить доступ из всего диапазона адресов.

Сведения о тарифах

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

Устранение неполадок

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

Примечание.

  • Интеграция с виртуальной сетью не поддерживается для сценариев Docker Compose в Службе приложений.
  • Ограничения доступа не применяются к трафику, проходящим через частную конечную точку.

Удаление плана или приложения Служба приложений перед отключением сетевой интеграции

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

Чтобы снова обновить или удалить подсеть или виртуальную сеть, необходимо повторно создать интеграцию виртуальной сети, а затем отключить ее:

  1. Повторно создайте план и приложение Служба приложений (обязательно использовать точно то же имя веб-приложения, что и раньше).
  2. Перейдите к сети в приложении в портал Azure и настройте интеграцию виртуальной сети.
  3. После настройки интеграции виртуальной сети нажмите кнопку "Отключить".
  4. Удалите план или приложение Служба приложений.
  5. Обновите или удалите подсеть или виртуальную сеть.

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