Планирование и реализация сетевой интеграции для Службы приложений Azure и Функций Azure
Виртуальные сети Azure позволяют размещать многие ресурсы Azure в сети, недоступной из Интернета. Функция интеграции с виртуальной сетью Службы приложений позволяет приложениям получать доступ к ресурсам в виртуальной сети или через нее.
Служба приложений реализована в виде двух моделей:
- Ценовые категории выделенных вычислительных ресурсов, включая "Базовый", "Стандартный", "Премиум", "Премиум v2" и "Премиум v3".
- Среда службы приложений, которая развертывается непосредственно в виртуальной сети с выделенной вспомогательной инфраструктурой и использует ценовые категории "Изолированный" и "Изолированный v2".
Функция интеграции с виртуальной сетью используется в ценовых категориях выделенных вычислительных ресурсов Службы приложений Azure. Если приложение находится в Среда службы приложений, оно уже интегрировано с виртуальной сетью и не требует настройки функции интеграции виртуальной сети для доступа к ресурсам в той же виртуальной сети.
Интеграция с виртуальной сетью предоставляет приложению доступ к ресурсам виртуальной сети, но не предоставляет входящий частный доступ к этому приложению остается из этой сети. Доступ к частным сайтам подразумевает доступность приложения только из частной сети, например из виртуальной сети Azure. Интеграция с виртуальной сетью используется только для выполнения исходящих вызовов из вашего приложения к виртуальной сети.
Функция интеграции с виртуальной сетью:
- требует поддерживаемую ценовую категорию "Базовый" или "Стандартный", "Премиум", "Премиум v2", "Премиум v3" или "Эластичный Premium" службы приложений.
- поддерживает TCP и UDP;
- Работает с Служба приложений приложениями, приложениями-функциями и приложениями логики.
Функции, не поддерживаемые при интеграции с виртуальной сетью:
- подключение диска;
- присоединение к домену Active Directory на Windows Server;
- NetBIOS.
Интеграция виртуальной сети поддерживает подключение к виртуальной сети в одном регионе. Интеграция с виртуальной сетью позволяет приложению получать доступ:
- Ресурсы в виртуальной сети, с которой вы интегрируетесь.
- Ресурсы в виртуальных сетях, подключенных к виртуальной сети, интегрированной с вашим приложением, с помощью пиринга, включая соединения глобального пиринга.
- Ресурсы в подключениях Azure ExpressRoute.
- Службы, защищенные конечной точкой службы.
- Службы с поддержкой частных конечных точек.
При использовании интеграции с виртуальной сетью можно использовать следующие функции сети Azure:
- Группы безопасности сети (NSG). Можно блокировать исходящий трафик с помощью NSG, размещенного в подсети интеграции. Правила для входящих подключений не применяются, так как вы не можете использовать интеграцию с виртуальной сетью для предоставления входящего доступа к своему приложению.
- Таблицы маршрутов (UDR). Можно поместить таблицу маршрутов в подсеть интеграции для отправки исходящего трафика.
- Шлюз NAT. Шлюз NAT можно использовать для получения выделенного исходящего IP-адреса и устранения нехватки портов SNAT.
Как работает интеграция виртуальной сети
Приложения размещаются в Службе приложений с рабочими ролями. Интеграция виртуальной сети выполняется путем подключения виртуальных интерфейсов к рабочим ролям с адресами в делегированной подсети. Используемые виртуальные интерфейсы не являются ресурсами, к которым клиенты имеют прямой доступ. Поскольку исходящий адрес находится в вашей виртуальной сети, он имеет доступ к большинству ресурсов в ней или через нее аналогично виртуальной машине в этой виртуальной сети.
Если интеграция виртуальной сети включена, приложение выполняет исходящие вызовы через виртуальную сеть. Внешние адреса, указанные на портале свойств приложений, как и прежде, представляют собой адреса, которые использует ваше приложение. Однако если исходящий вызов является виртуальной машине или частной конечной точке в виртуальной сети интеграции или одноранговой виртуальной сети, исходящий адрес — это адрес из подсети интеграции. Частный IP-адрес, назначенный экземпляру, предоставляется через переменную среды WEBSITE_PRIVATE_IP.
Если включена маршрутизация всего трафика, то весь исходящий трафик отправляется в виртуальную сеть. Если маршрутизация трафика не включена, в виртуальную сеть отправляется только частный трафик (RFC1918) и конечные точки службы, настроенные в подсети интеграции. Исходящий трафик в Интернет направляется непосредственно из приложения.
Для планов Windows Служба приложений функция интеграции виртуальной сети поддерживает два виртуальных интерфейса на рабочую роль. Два виртуальных интерфейса на рабочую роль означают две интеграции виртуальных сетей для каждого плана Служба приложений. Другими словами, план Windows Служба приложений может иметь интеграцию виртуальной сети с двумя подсетями или виртуальными сетями. Приложения в том же плане Служба приложений могут использовать только одну из интеграции виртуальной сети с определенной подсетью, что означает, что приложение может иметь только одну интеграцию виртуальной сети в определенное время. Планы linux Служба приложений поддерживают только одну интеграцию виртуальной сети на план.
Требования к подсети
Интеграция виртуальной сети зависит от выделенной подсети. При создании подсети подсеть Azure использует пять IP-адресов с самого начала. Один адрес используется из подсети интеграции для каждого экземпляра плана Служба приложений. При масштабировании приложения до четырех экземпляров используются четыре адреса.
При масштабировании вверх или вниз в количестве экземпляров необходимое адресное пространство увеличивается в течение короткого периода времени. Операция масштабирования добавляет такое же количество новых экземпляров, а затем удаляет существующие экземпляры. Операция масштабирования влияет на реальные доступные поддерживаемые экземпляры для заданного размера подсети. Обновления платформы нуждаются в бесплатных IP-адресах, чтобы гарантировать, что обновления могут произойти без прерываний исходящего трафика. Наконец, после увеличения масштаба, уменьшения или завершения операций может потребоваться короткий промежуток времени до освобождения IP-адресов.
Так как размер подсети невозможно изменить после назначения, используйте подсеть, которая достаточно велика для любого масштаба, которого может достигнуть ваше приложение. Также следует зарезервировать IP-адреса для обновлений платформы. Чтобы избежать проблем с емкостью подсети, используйте подсеть /26
с 64 адресами. При создании подсетей на портале Azure в рамках интеграции с виртуальной сетью требуемый минимальный размер составляет /27. Если подсеть уже существует до интеграции через портал, вы можете использовать подсеть /28.
Примечание.
Контейнеры Windows используют дополнительный IP-адрес для каждого приложения для каждого экземпляра плана Служба приложений и необходимо соответствующим образом размер подсети. Если у вас есть например 10 экземпляров плана контейнеров Windows Служба приложений с 4 приложениями, запущенными, вам потребуется 50 IP-адресов и дополнительные адреса для поддержки горизонтального (в/вне) масштабирования.
Пример вычисления:
Для каждого экземпляра плана Служба приложений необходимо:
- 4 приложения контейнеров Windows = 4 IP-адреса
- 1 IP-адрес на экземпляр плана Служба приложений
- 4 + 1 = 5 IP-адресов
Для 10 экземпляров:
- 5 x 10 = 50 IP-адресов на план Служба приложений
Так как у вас есть 1 Служба приложений плана, 1 x 50 = 50 IP-адресов.
Если необходимо, чтобы приложения в вашем плане могли подключаться к виртуальной сети, к которой уже подключены приложения из другого плана, выберите подсеть, отличную от используемой в уже существующей интеграции.
Разрешения
Для настройки интеграции виртуальной сети с помощью портал Azure интерфейса командной строки или непосредственного задания virtualNetworkSubnetId
свойства сайта необходимо иметь по крайней мере следующие разрешения на управление доступом на основе ролей или на более высоком уровне.
Действие | Description |
---|---|
Microsoft.Network/virtualNetworks/read | Чтение определения виртуальной сети |
Microsoft.Network/virtualNetworks/subnets/read | Чтение определения подсети виртуальной сети |
Microsoft.Network/virtualNetworks/subnets/join/action | Присоединяет виртуальную сеть. |
Маршруты
Вы можете контролировать, какой трафик проходит через интеграцию с виртуальной сетью. Существует три типа маршрутизации, которые следует учитывать при настройке интеграции виртуальной сети. Маршрутизация приложений определяет, какой трафик направляется из приложения и в виртуальную сеть. Маршрутизация конфигурации затрагивает операции, выполняемые до или во время запуска приложения. Примерами являются параметры извлечения образа контейнера и приложения со ссылкой на 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 необходимо дополнительно allow files.pythonhosted.org, pypi.org
.
Если требуется маршрутизировать исходящий трафик локально, можно использовать таблицу маршрутизации для отправки исходящего трафика на шлюз Azure ExpressRoute. Если вы направляете трафик в шлюз, установите во внешней сети маршруты для возврата ответов. Маршруты протокола BGP также влияют на трафик приложения. Если у вас есть маршруты BGP, например для шлюза ExpressRoute, они повлияют на исходящий трафик приложения. Как и определяемые пользователем маршруты, маршруты BGP влияют на трафик в соответствии с настройками области маршрутизации.
Конечные точки служб
Интеграция виртуальной сети позволяет получить доступ к службам Azure, защищенным конечными точками службы. Для доступа к службе, защищенной конечной точкой службы, сделайте следующее:
- Настройте интеграцию виртуальной сети с веб-приложением, чтобы подключиться к определенной подсети для интеграции.
- Перейти в целевую службу и настроить конечные точки службы для подсети интеграции.
Частные конечные точки
Если вы хотите выполнять вызовы к частным конечным точкам, убедитесь, что поиск в 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.
Примечание.
Значение SITE\_PRIVATE\_IP привязано к изменению. Однако он будет IP-адресом в диапазоне адресов подсети интеграции, поэтому вам потребуется разрешить доступ из всего диапазона адресов.
Сведения о тарифах
Функция интеграции с виртуальной сетью не взимает дополнительную плату за использование за пределами тарифной категории Служба приложений плана.
Устранение неполадок
Эта функция легко настроить, но это не означает, что ваш опыт является проблемой бесплатно. При возникновении проблем с доступом к нужной конечной точке можно выполнить различные действия в зависимости от того, что вы наблюдаете. Дополнительные сведения см . в руководстве по устранению неполадок интеграции с виртуальной сетью.
- Интеграция с виртуальной сетью не поддерживается для сценариев Docker Compose в Службе приложений.
- Ограничения доступа не применяются к трафику, поступающим через частную конечную точку.
Удаление плана или приложения Служба приложений перед отключением сетевой интеграции
Если вы удалили приложение или план Служба приложений без отключения интеграции виртуальной сети, вы не сможете выполнять операции обновления и удаления в виртуальной сети или подсети, которая использовалась для интеграции с удаленным ресурсом. Делегирование подсети Microsoft.Web/serverFarms остается назначенным подсети и предотвращает операции обновления и удаления.
Чтобы снова обновить или удалить подсеть или виртуальную сеть, необходимо повторно создать интеграцию виртуальной сети, а затем отключить ее:
- Повторно создайте план и приложение Служба приложений (обязательно использовать точно то же имя веб-приложения, что и раньше).
- Перейдите к сети в приложении в портал Azure и настройте интеграцию виртуальной сети.
- После настройки интеграции виртуальной сети нажмите кнопку "Отключить".
- Удалите план или приложение Служба приложений.
- Обновите или удалите подсеть или виртуальную сеть.