Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Среда службы приложений — это развертывание Службы приложений Azure для одного клиента, в котором размещаются контейнеры Windows и Linux, веб-приложения, приложения API, приложениям логики, а также приложения-функции. При установке Среды службы приложений необходимо выбрать виртуальную сеть Azure, в которую необходимо развернуть службу. Весь входящий и исходящий трафик приложения находится в указанной вами виртуальной сети. Развертывание выполняется в одну подсеть в виртуальной сети, и в нее невозможно развернуть что-либо еще.
Требования к подсети
Ниже приведен минимальный набор требований для подсети, в которой находится ваша Среда службы приложений.
- Подсеть должна быть делегирована к
Microsoft.Web/hostingEnvironments. - Подсеть должна быть пуста.
- Свойство подсети
addressPrefixдолжно быть отформатировано как строка, а не массив.
Размер подсети может влиять на пределы масштабирования экземпляров плана службы приложений в Среде службы приложений. Для производственного масштаба мы рекомендуем использовать адресное /24 пространство (256 адресов) для вашей подсети. Если вы планируете масштабировать почти максимальную емкость до 200 экземпляров в нашей среде службы приложений и планируете частые операции увеличения и уменьшения масштаба, рекомендуется адресное /23 пространство (512 адресов) для подсети.
Примечание.
Теперь можно переместить среду службы приложений в новую подсеть. Чтобы переместить среду службы приложений в новую подсеть, создайте запрос в службу поддержки. Требуется запрос в службу поддержки, так как существуют необходимые условия и конфигурации, которые необходимо проверить и правильно настроить перед изменением подсети, чтобы обеспечить успешную миграцию. Неправильная миграция может привести к проблемам с простоем и подключением.
Если вы используете меньшую подсеть, помните о следующих ограничениях:
- В любой конкретной подсети имеется пять адресов, зарезервированных для целей управления. Помимо адресов управления, Среда службы приложений динамически масштабирует поддержку инфраструктуры и использует от 7 до 27 адресов в зависимости от конфигурации и загрузки. Оставшиеся адреса можно использовать для экземпляров в рамках плана службы App Service. Минимальный размер подсети — диапазон адресов
/27(32 адреса). - Для любой комбинации ОС/SKU плана службы приложений, используемой в среде службы приложений, например, i1v2 Windows, создается один резервный экземпляр для каждых 20 активных экземпляров. Резервные экземпляры также требуют IP-адресов.
- При масштабировании планов службы приложений в среде службы приложений, вверх/вниз, количество IP-адресов, используемых планами службы приложений, временно удваивается, пока операция масштабирования не завершится. Перед выведением существующих экземпляров новые экземпляры должны полностью функционировать.
- Обновления платформы нуждаются в бесплатных IP-адресах, чтобы гарантировать, что обновления могут произойти без прерываний исходящего трафика.
- После увеличения масштаба, уменьшения или завершения операций может потребоваться некоторое время до освобождения IP-адресов. В редких случаях эта операция может составлять до 12 часов.
- Если в вашей подсети закончились адреса, вы можете столкнуться с ограничениями на масштабирование планов службы приложений в Среде службы приложений. Другая возможность заключается в том, что при интенсивной нагрузке трафика может возникнуть увеличенная задержка, если корпорация Майкрософт не сможет масштабировать поддерживающую инфраструктуру.
Примечание.
Контейнеры Windows используют дополнительный IP-адрес для каждого приложения на каждый экземпляр плана служб приложений, и необходимо соответствующим образом определить размер подсети. Если в вашей среде службы приложений есть, например, 2 плана службы приложений Windows, каждый из которых имеет 25 экземпляров и в каждой из которых работает 5 приложений, вам потребуется 300 IP-адресов и дополнительные адреса для поддержки горизонтального масштабирования (масштабирование вширь и из широты).
Пример вычисления:
Для каждого экземпляра плана Службы приложений необходимо: 5 приложений контейнеров Windows = 5 IP-адресов, 1 IP-адрес на экземпляр плана Службы приложений, 5 + 1 = 6 IP-адресов.
Для 25 экземпляров: 6 x 25 = 150 IP-адресов на план службы приложений
Поскольку у вас есть 2 плана службы приложений, 2 x 150 = 300 IP-адресов.
Адреса
На этапе создания к Среде службы приложений относятся следующие сведения о сети.
| Тип адреса | Описание |
|---|---|
| Виртуальная сеть Среды службы приложений | Виртуальная сеть, в которую произведено развертывание. |
| Подсеть Среды службы приложений (Среда службы приложений) | Подсеть, в которую производится развертывание. |
| Суффикс домена | Суффикс домена по умолчанию, используемый приложениями. |
| Суффикс личного домена | (необязательно) Суффикс личного домена, используемый приложениями. |
| Виртуальный IP-адрес (VIP) | Используемый тип VIP. Может иметь два значения: внутренний и внешний. |
| Адрес входящего трафика | Входящий адрес — это адрес для доступа к вашим приложениям. Если у вас есть внутренний VIP-адрес, он расположен в подсети вашей Среды службы приложений. Если адрес внешний, он является общедоступным. |
| Адреса исходящих соединений работника | Приложения используют эти или эти адреса при выполнении исходящих вызовов в Интернет. |
| Исходящие адреса платформы | Платформа использует этот адрес при выполнении исходящих вызовов в Интернет. Пример — извлечение сертификатов для суффикса личного домена из Key Vault, если частная конечная точка не используется. |
Сведения можно найти в разделе IP-адреса на портале, как показано на следующем снимке экрана:
При масштабировании планов Службы приложений в Среде службы приложений вы используете больше адресов из подсети. Количество используемых адресов зависит от количества имеющихся экземпляров плана службы приложений и объема существующего трафика. Приложения в Среде службы приложений не имеют выделенных адресов в подсети. Используемые приложением конкретные адреса в подсети будут изменяться с течением времени.
Принести собственный входящий адрес
Вы можете использовать собственный входящий адрес в Среда службы приложений. При создании среды приложений с виртуальным внутренним IP-адресом вы можете указать статический IP-адрес в подсети. При создании Среды службы приложений (Среда службы приложений) с внешним виртуальным IP-адресом вы можете использовать собственный публичный IP-адрес Azure, указав идентификатор ресурса этого IP-адреса. Ниже приведены ограничения для привлечения собственного входящего адреса:
- Для Среды службы приложений с внешним VIP ресурс общедоступного IP-адреса Azure должен находиться в той же подписке, что и Среда службы приложений.
- Нельзя изменить входящий адрес после создания окружения службы приложений.
Ограничение входящего трафика для среды службы приложений ILB
Для сред службы приложений с внутренним виртуальным IP-адресом входящий трафик к фронтэндам может быть отброшен, если исходный IP-адрес попадает в диапазон адресов инфраструктуры, используемый для фронтэндов среды службы приложений.
Не используйте исходные IP-адреса в адресном 172.31.192.0/25 пространстве при подключении к среде службы приложений ILB.
Ограничения портов и сети
Чтобы ваше приложение могло получать трафик, убедитесь, что правила группы безопасности сети (NSG) для входящего трафика разрешают подсети Среды службы приложений получать трафик с необходимых портов. Помимо портов, на которые вы хотите получать трафик, необходимо убедиться, что Azure Load Balancer может подключиться к подсети через порт 80. Этот порт используется для проверки работоспособности внутренней виртуальной машины. Вы по-прежнему можете контролировать трафик порта 80 из виртуальной сети в свою подсеть.
Примечание.
Изменения правил NSG могут занять до 14 дней, чтобы вступили в силу из-за сохраняемости HTTP-подключения. Если вы вносите изменения, которые блокируют трафик платформы или управления, это может занять до 14 дней, чтобы эффект был замечен.
Рекомендуем настроить следующее правило NSG для входящего трафика:
| Исходные и конечные порты | Направление | Источник | Назначение | Цель |
|---|---|---|---|---|
| * / 80,443 | Входящий трафик | Виртуальная сеть | Диапазон подсетей для Среды службы приложений | Разрешить трафик приложения и внутренний пинг-трафик проверки работоспособности. |
Минимальные требования к работе Среды службы приложений:
| Исходные и конечные порты | Направление | Источник | Назначение | Цель |
|---|---|---|---|---|
| * / 80 | Входящий трафик | AzureLoadBalancer | Диапазон подсетей для Среды службы приложений | Разрешить внутренний трафик ping для проверки работоспособности системы |
При использовании минимально необходимого правила может потребоваться одно или несколько правил для трафика приложения. Если вы используете любой из вариантов развертывания или отладки, необходимо также разрешить этот трафик в подсеть Среды службы приложений. Источником этих правил может быть виртуальная сеть, а также один или несколько конкретных IP-адресов или диапазонов IP-адресов. Назначение всегда является диапазоном подсети Среды службы приложений.
Внутренний трафик проверки состояния на порту 80 изолирован между балансировщиком нагрузки и внутренними серверами. Внешний трафик не может получить доступ к конечной точке для проверки работоспособности.
Стандартные входящие порты доступа для приложения:
| Использование | Порты |
|---|---|
| HTTP/HTTPS | 80, 443 |
| FTP и FTPS | 21, 990, 10001-10020 |
| Удаленная отладка в Visual Studio | 4022, 4024, 4026 |
| Служба веб-развертывания | 8172 |
Примечание.
Для доступа к FTP, даже если вы хотите запретить стандартный FTP на порту 21, вам по-прежнему необходимо разрешить трафик из LoadBalancer в диапазон подсети Среда службы приложений на порту 21, так как это используется для внутреннего трафика ping для проверки состояния для ftp-службы в частности.
Сетевая маршрутизация
Можно задать таблицы маршрутизации без ограничения. Вы можете туннелировать весь исходящий трафик приложения из среды App Service на устройство брандмауэра, такое как Брандмауэр Azure. В этом сценарии единственное, о чем следует беспокоиться, — это зависимости приложения.
Зависимости приложений включают конечные точки, необходимые приложению во время выполнения. Помимо API и служб, которые вызывает приложение, зависимости также могут быть конечными точками, такими как конечные точки проверки списков отзыва сертификатов (CRL) и точки идентификации и аутентификации, например служба Microsoft Entra ID. Если вы используете непрерывное развертывание в Службе приложений, вам, возможно, также придется разрешить конечные точки в зависимости от типа и языка. В частности, для непрерывного развертывания Linux необходимо разрешить oryx-cdn.microsoft.io:443.
Примечание.
API inboundNetworkDependenciesEndpoints и outboundNetworkDependenciesEndpoints не поддерживаются в Среда службы приложений v3. Вызов этих API для ресурса с типом Microsoft.Web/hostingEnvironmentsASEV3 возвращает ошибку Bad Request "Operation not supported for resource type Microsoft.Web/hostingEnvironments with kind ASEV3". Среда службы приложений версии 3 значительно упрощают сетевые зависимости по сравнению с более ранними версиями, поэтому эти API обнаружения конечных точек больше не требуются. Вместо этого используйте входящий и исходящий порт и сведения об адресе, описанные в этой статье.
Вы можете разместить устройства брандмауэра веб-приложения, например Шлюз приложений Azure, перед входящим трафиком. Это позволяет вам сделать доступными определенные приложения в этой Среде службы приложений.
Приложение использует один из исходящих адресов по умолчанию для исходящего трафика в общедоступные конечные точки. Если вы хотите настроить исходящий адрес приложений в Среде службы приложений, можете добавить шлюз преобразования сетевых адресов (NAT) в свою подсеть.
Примечание.
Исходящее подключение SMTP (порт 25) поддерживается для Среды службы приложений версии 3. Возможность поддержки определяется параметром для подписки, в которой развернута виртуальная сеть. Для виртуальных сетей и подсетей, созданных до 1 Августа 2022 г. необходимо инициировать временное изменение конфигурации виртуальной сети/подсети, чтобы параметр был синхронизирован из подписки. Например, можно добавить временную подсеть, временно связать или отвязать NSG, или временно настроить конечную точку службы. Дополнительные сведения и устранение неполадок см. в статье "Устранение неполадок с исходящим подключением SMTP" в Azure.
Сегментация исходящей сети
Сегментация исходящей сети позволяет присоединять приложения к альтернативным подсетям, чтобы управлять маршрутизацией исходящего трафика. По умолчанию весь исходящий трафик из среды службы приложений поступает из подсети, в которой размещена среда службы приложений.
Включение сегментации исходящей сети
При создании среды службы приложений необходимо включить сегментацию исходящей сети. Эту функцию нельзя включить в существующих средах службы приложений. Поддержка портала для включения этого параметра кластера или присоединения альтернативных подсетей недоступна.
Чтобы включить эту функцию, настройте MultipleSubnetJoinEnabled параметр кластера при создании среды службы приложений с помощью шаблона Azure Resource Manager или Bicep:
"clusterSettings": [
{
"name": "MultipleSubnetJoinEnabled",
"value": "true"
}
]
Инструкции по настройке параметров кластера см. в разделе "Пользовательские параметры конфигурации" для сред службы приложений.
Необходимо также задать allowNewDirectNetworkIntegrations свойство true в сетевой конфигурации служебной среды приложения. Это свойство является обязательной составной частью конфигурации сети. Если вы обновляете сетевую конфигурацию без включения этого свойства, ее можно отключить, так как она по умолчанию false.
Это свойство можно задать с помощью интерфейса командной строки или непосредственно в шаблоне ARM.
Для этого свойства нет выделенного параметра CLI, поэтому используйте следующую az rest команду, чтобы включить ее:
az rest --method put \
--uri "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/hostingEnvironments/{aseName}/configurations/networking?api-version=2024-04-01" \
--body '{
"properties": {
"allowNewDirectNetworkIntegrations": true
}
}'
Замените {subscriptionId}, {resourceGroupName} и {aseName} значениями.
Это важно
При обновлении конфигурации сети включите все свойства, которые необходимо сохранить. Это свойство allowNewDirectNetworkIntegrations является логическим значением, не допускающим значение NULL, и по умолчанию равно false, поэтому исключение его из обновления конфигурации сети приведет к отключению этой функции.
Присоединение приложения к альтернативной подсети
Альтернативная подсеть должна быть пуста и делегирована Microsoft.Web/serverFarms. Убедитесь, что для приложения включена маршрутизация трафика приложений для маршрутизации всего трафика через альтернативную подсеть.
Чтобы присоединить приложение к альтернативной подсети, используйте следующую команду Azure CLI:
az webapp vnet-integration add --resource-group <APP-RESOURCE-GROUP> --name <APP-NAME> --vnet <VNET-NAME> --subnet <ALTERNATE-SUBNET-NAME>
Если альтернативная подсеть находится в другой группе ресурсов, отличной от приложения, запустите az webapp vnet-integration add -h , чтобы узнать, как указать идентификатор ресурса.
Чтобы изменить альтернативную подсеть для приложения, сначала удалите существующую интеграцию и добавьте новую.
Чтобы удалить альтернативное присоединение подсети для приложения, удалите интеграцию виртуальной сети с помощью Azure CLI или ARM/Bicep:
az webapp vnet-integration remove --resource-group <APP-RESOURCE-GROUP> --name <APP-NAME>
Это важно
Не добавляйте подсеть среды службы приложений в качестве альтернативной подсети. Эта конфигурация приводит к конфликту и не позволит приложению работать правильно.
Ограничения
- Приложение, среда службы приложений и виртуальная сеть должны находиться в одной подписке.
- Каждое приложение из заданного плана может интегрироваться только с одной альтернативной подсетью.
- План может иметь до четырех разных подключений подсети, а приложения в одном плане могут использовать любой из подключений.
- Эта функция несовместима с функцией соединения подсети с несколькими планами , доступной в предложении мультитенантной службы приложений.
Частная конечная точка
Чтобы включить частные конечные точки для приложений, размещенных в Среде службы приложений, необходимо сначала включить эту функцию на уровне Среды службы приложений.
Его можно активировать с помощью портал Azure. В области конфигурации Среды службы приложений включите настройку Allow new private endpoints.
В качестве альтернативы можно включить следующий интерфейс командной строки:
az appservice ase update --name myasename --allow-new-private-endpoint-connections true
Дополнительные сведения о Частной конечной точке и веб-приложении см. на странице Частная конечная точка для веб-приложения Azure.
DNS
В следующих разделах описываются рекомендации по использованию и настройке DNS для входящего и исходящего трафика из Среды службы приложений. В примерах используется суффикс appserviceenvironment.net домена из общедоступного облака Azure. Если вы используете другие облака, такие как Azure для государственных организаций, необходимо использовать соответствующий суффикс домена. Для доменов Среда службы приложений имя сайта усечено на 59 символов из-за ограничений DNS. Для доменов Среда службы приложений с слотами имя сайта усечено на 40 символов, а имя слота усечено на 19 символов из-за ограничений DNS.
Настройка DNS в среде платформы служб приложений
Если ваша среда службы приложений создана с внешним виртуальным IP-адресом, ваши приложения автоматически помещаются в общедоступный DNS. Если ваша Среда службы приложений создана с использованием внутреннего VIP-адреса, при создании Среды службы приложений у вас есть два варианта. Если вы выбираете, что частные зоны Azure DNS настроены автоматически, DNS настраивается в виртуальной сети. Если вы решили настроить DNS вручную, необходимо либо использовать собственный DNS-сервер, либо настроить частные зоны Azure DNS. Чтобы найти входящий адрес, перейдите на портал Среды службы приложений и выберите IP-адреса.
Если нужно использовать собственный DNS-сервер, необходимо добавить следующие записи:
- Создайте зону для
<Среда службы приложений-name>.appserviceenvironment.net. - Создайте в этой зоне запись A, которая указывает * на исходящий IP-адрес, используемый вашей средой App Service.
- Создайте в этой зоне запись A, которая указывает @ на входящий IP-адрес, используемый вашей ASE.
- Создайте в
<Среда службы приложений-name>.appserviceenvironment.netзону с именемscm. - Создайте в зоне
scmзапись A, которая указывает * на IP-адрес, используемый частной конечной точкой вашей Среды службы приложений.
Чтобы настроить DNS в частных зонах Azure DNS, выполните следующие действия:
- Создайте частную зону Azure DNS с именем
<Среда службы приложений-name>.appserviceenvironment.net. - Создайте в этой зоне запись A, которая указывает * на входящий IP-адрес.
- Создайте в этой зоне запись A, которая указывает @ на входящий IP-адрес.
- Создайте в этой зоне запись A, которая указывает *.scm на входящий IP-адрес.
Кроме домена по умолчанию, предоставляемого при создании приложения, можно также добавить в приложение личный домен. Можно задать имя личного домена без проверки в ваших приложениях. Если вы используете личные домены, необходимо убедиться, что для них настроены записи DNS. Вы можете следовать указанным выше инструкциям, чтобы настроить зоны и записи DNS для пользовательского доменного имени (замените доменное имя по умолчанию на пользовательское доменное имя). Имя личного домена подходит для запросов приложений, но не подходит для сайта scm. Сайт scm доступен только по адресу <appname>.scm.<asename>.appserviceenvironment.net.
Конфигурация DNS для FTP-доступа
В частности, для FTP-доступа к среде Службы приложений с внутренней подсистемой балансировки нагрузки (ILB) версии 3 необходимо убедиться, что DNS настроен. Настройте частную зону Azure DNS или эквивалентную пользовательскую службу DNS со следующими параметрами.
- Создайте частную зону Azure DNS с именем
ftp.appserviceenvironment.net. - Создайте в этой зоне запись A, которая указывает
<Среда службы приложений-name>на входящий IP-адрес.
Помимо настройки DNS, его также необходимо включить в среде службы приложений. Настройте параметры сети и на уровне приложения.
Настройка DNS из Среды службы приложений
Приложения в вашей среде службы приложений используют DNS, с которым настроена ваша виртуальная сеть. Если требуется, чтобы некоторые приложения использовали другой DNS-сервер, можно вручную задать его для каждого приложения с помощью параметров приложения WEBSITE_DNS_SERVER и WEBSITE_DNS_ALT_SERVER.
WEBSITE_DNS_ALT_SERVER настраивает дополнительный DNS-сервер. Вторичный DNS-сервер используется только при отсутствии ответа от основного DNS-сервера.