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


Размещение веб-приложения в App Service Environment

App Service Environment — это развертывание Azure App Service с одним клиентом, которое интегрируется с экземпляром Azure Virtual Network и подсетью. В этом сценарии вы можете разместить веб-приложение в изолированной среде, где вы являетесь единственным пользователем системы. Приложения, которые вы развертываете, подчиняются сетевым функциям, применяемым к подсети виртуальной сети в среде служб приложений (App Service Environment). Другие функции не требуются для доступа к сетевым функциям веб-приложений.

При создании веб-приложения в App Service Environment вы следуете стандартному процессу создания с немного другим подходом:

  • Для региона веб-приложения вместо выбора географического расположения для развертывания приложений выберите App Service Environment.
  • Для нового плана службы приложений в App Service Environment выберите изолированную ценовую категорию версии 2.

В этой статье описывается, как создать веб-приложение службы приложений в App Service Environment, выполнив действия на портале Azure.

Необходимые условия

  • Среда службы приложений. Чтобы создать новую среду, выполните действия, описанные в Quickstart: Create an App Service Environment.

  • При создании приложения следует помнить, что Windows и приложения Linux могут находиться в одном App Service Environment, но они не могут находиться в одном плане службы приложений.

Создание веб-приложения

На портале Azure создайте веб-приложение в App Service Environment:

  1. Войдите на портал Azure.

  2. Выберите "Создать ресурс", найдите веб-приложение в списке ресурсов и нажмите кнопку "Создать".

    Откроется панель "Создание веб-приложения " на вкладке "Базовый ".

    Screenshot, показывающий, как создать веб-приложение в App Service Environment на портале Azure.

  3. На вкладке "Базовый" выберите свою подписку.

  4. Выберите существующую группу ресурсов или выберите "Создать" для нового экземпляра.

  5. Введите имя нового веб-приложения.

    Если вы ранее выбрали план службы приложений в App Service Environment, доменное имя приложения отражает доменное имя App Service Environment. Например, для приложения zava-hosted-web-app и App Service Environment zava-app-service-envrionment-1 имя домена для приложения — zava-hosted-web-app-zava-app-service-envrionment-1.appserviceenvironment.net.

  6. Настройте параметры публикации, среды выполнения и операционной системы в соответствии с требованиями приложения.

  7. Для параметра региона используйте раскрывающийся список для выбора.

    • Чтобы использовать существующую Среду службы приложений, выберите среду в раскрывающемся списке Среды службы приложений версии 3.

    • Чтобы создать новую App Service Environment, выберите регион в раскрывающемся списке Regions. После выбора региона область Create Web App добавляет раздел с параметрами конфигурации для нового App Service Environment. Выполните действия для новой среды далее в этой процедуре.

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

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

  8. В параметрах ценовой категории укажите имя плана службы приложений и ценовую категорию плана.

    • Для плана Службы приложений Linux используйте раскрывающийся список и выберите существующий план или нажмите кнопку "Создать" для нового плана.

    • Для ценовой категории, если выбран существующий план, значение заполняется ценовой категорией для текущего плана.

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

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

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

      Screenshot, где показаны ценовые категории плана службы приложений со своими функциями и оборудованием на портале Azure.

      Создание нового плана службы приложений занимает около 20 минут.

  9. Если вы создаете новый App Service Environment в рамках создания нового плана службы приложений, настройте следующие параметры App Service Environment:

    Скриншот, демонстрирующий, как настроить новый

  10. Перейдите на вкладку "Сеть" в области "Создание веб-приложения " и настройте параметры.

    • Если вы создаёте новую среду службы приложений:

      • Определите Virtual Network и Subnet для развертывания. Можно выбрать существующие ресурсы или создать новые инстанции.

      • Настройте параметр DNS . Если вы хотите, чтобы система настроила DNS для вас в виртуальной сети вашей Среды обслуживания приложений, выберите Azure DNS Частная зона.

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

      • Настройте параметр входящего IP-адреса . Выберите "Автоматически " (назначенный системой IP-адрес из подсети) или "Вручную " (введите предпочитаемый IP-адрес).

    • Если вы используете существующую среду App Service Environment для развертывания, настройте параметр Виртуальная интеграция сети по мере необходимости.

  11. (Необязательно) Настройте параметры на оставшихся вкладках в области "Создание веб-приложения " в соответствии с требованиями приложения. Большинство параметров отключены по умолчанию.

    • Deployment: настройка непрерывного развертывания, проверки подлинности и GitHub параметров.
    • Monitor + Secure: используйте Azure Monitor Application Insights или Microsoft Defender for Cloud.
    • Теги: определение тегов для приложения.

    Если вы создаете новую App Service Environment, также убедитесь, что параметры на вкладке Hosting подтверждены.

  12. Выберите Review + create. Убедитесь, что конфигурация веб-приложения правильна, и нажмите кнопку "Создать".

Просмотр параметров масштабирования

Каждое приложение App Service работает в плане службы приложений. Среды службы приложений содержат планы службы приложений, а планы службы приложений содержат приложения. При масштабировании приложения вы также масштабируйте план службы приложений и все приложения в том же плане.

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

Операция масштабирования для одного размера и операционной системы не влияет на масштабирование других сочетаний размеров и операционной системы. Например, если вы масштабируете план службы приложений I2v2 Windows, операция перехода на Windows I3v2 начинается немедленно. Масштабирование обычно занимает менее 15 минут, но может занять до 45 минут.

В сценарии мультитенантного App Service масштабирование происходит моментально, так как пул общих ресурсов легко доступен для поддержки. App Service Environment — это служба с одним клиентом, поэтому общий буфер не выделяется, а ресурсы выделяются на основе необходимости.

Планирование уровня доступа для приложения

В App Service Environment с виртуальным IP-адресом (VIP) суффикс домена, который используется для создания приложения, это <app-service-environment-name>.appserviceenvironment.net. Для App Service Environment с именем zava-environment, на котором размещено приложение с именем hosted-web-app, вы получите доступ к среде, используя следующие URL-адреса:

  • hosted-web-app.zava-environment.appserviceenvironment.net
  • hosted-web-app.scm.zava-environment.appserviceenvironment.net

Приложения, размещенные в среде App Service, использующей внутренний виртуальный IP-адрес, доступны только в том случае, если вы находитесь в той же виртуальной сети или подключены к ней. Аналогичным образом публикация возможна только в том случае, если вы находитесь в той же виртуальной сети или подключены к этой виртуальной сети.

В App Service Environment с внешним IP-адресом используется суффикс домена для создания приложений, <app-service-environment-name>.p.azurewebsites.net. Если существует App Service Environment с именем zava-environment, где размещено приложение с именем hosted-web-app, вы получите доступ к среде с помощью следующих URL-адресов:

  • hosted-web-app.zava-environment.p.azurewebsites.net
  • hosted-web-app.scm.zava-environment.p.azurewebsites.net

URL scm используется для доступа к консоль Kudu или для публикации приложения с помощью Web Deploy. Дополнительные сведения см. в разделе Kudu service for Azure App Service. Консоль Kudu предоставляет веб-интерфейс для отладки, отправки файлов и редактирования файлов.

Настройка DNS

Если ваша среда App Service создана с внешним IP-адресом (VIP), ваши приложения будут автоматически добавлены в общедоступный DNS. Если ваш App Service Environment создан с внутренним VIP, может потребоваться настроить DNS вручную.

IP-адреса для App Service Environment можно найти на портале Azure:

  1. На портале Azure перейдите на страницу Обзор среды службы приложений для вашего приложения.

  2. В меню слева выберите Параметры>IP-адреса.

На странице IP-адресов отображаются входящий и исходящий IP-адреса:

Скриншот, показывающий, как найти входящий IP-адрес для App Service Environment на портале Azure.

Использование собственного DNS-сервера

Если вы хотите использовать собственный DNS-сервер, добавьте следующие записи:

  1. На DNS-сервере создайте зону DNS с именем вашей среды App Service Environment <app-service-environment-name>.appserviceenvironment.net. Дальнейшие действия в этой процедуре обозначают эту зону как zone_main.

  2. Создайте запись A в zone-main, указывающую звездочку * (подстановочные знаки) на входящий IP-адрес, используемый App Service Environment.

  3. Создайте запись A в zone-main, которая направляет символ @ на входящий IP-адрес, используемый в вашей среде обслуживания приложений (App Service Environment).

  4. Создайте зону в пределах zone-main с именем scm.

  5. Создайте запись A в зоне scm, которая указывает звездочку * (подстановочные знаки) на входящий адрес, используемый App Service Environment.

Настройка DNS в частной зоне Azure DNS

Чтобы настроить DNS в частных зонах Azure DNS, выполните приведенные действия.

  1. Создайте ресурс Azure Private DNS. с названием вашего App Service Environment, <app-service-environment-name>.appserviceenvironment.net. Дальнейшие шаги в этой процедуре будут ссылаться на эту зону как zone-main.

  2. A Создайте запись в зоне-main, указывающую звездочку * (нотацию подстановочных знаков) на входящий IP-адрес.

  3. A Создайте запись в зоне-main, которая указывает нотацию символа @ на входящий IP-адрес.

  4. Создайте запись A для зоны-main, указывающую нотацию *.scm зоны на входящий IP-адрес.

Параметры DNS для суффикса домена по умолчанию в App Service Environment не ограничивают доступ к вашим приложениям только указанными вами значениями. Вы можете задать имя личного домена без проверки приложений в App Service Environment. Если вы позже создадите зону с именем zava-new-zone.net, вы можете указать его на входящий IP-адрес.

Имя личного домена работает для запросов приложений. Если сертификат суффикса пользовательского домена содержит подстановочный символ SAN для scm, имя пользовательского домена также работает для scm сайта. Вы можете создать *.scm запись и указать ее на входящий IP-адрес.

Публикация веб-приложения

Веб-приложение можно опубликовать с помощью любого из следующих методов:

  • Веб-развертывание
  • Непрерывная интеграция (CI)
  • Перетаскивание объектов в консоли Kudu
  • Интегрированная среда разработки (IDE), например Visual Studio, Eclipse или IntelliJ IDEA

При использовании внутреннего VIP App Service Environment конечные точки публикации доступны только через входной адрес. Если у вас нет сетевого доступа к входящего IP-адреса, вы не сможете публиковать приложения в этом App Service Environment. Интегрированная среда разработки также должна иметь сетевой доступ к входящему адресу в среду App Service для публикации непосредственно в неё.

Без дополнительных изменений интернет-ориентированные системы CI, такие как GitHub и Azure DevOps, не работают с внутренней средой App Service для виртуальных IP-адресов. Конечная точка публикации недоступна в Интернете. Вы можете включить публикацию во внутреннюю VIP App Service Environment из Azure DevOps путем установки саморазмещенного агента выпуска в пределах виртуальной сети.

Настройка хранилища для веб-приложения

У вас есть 1 ТБ хранилища для всех приложений в App Service Environment. План службы приложений в изолированном прайс-тиере SKU имеет ограничение в 250 ГБ. В App Service Environment в план службы приложений добавляется 250 ГБ хранилища до 1 ТБ. Вы можете иметь больше планов службы приложений, чем только четыре, но нет другого хранилища за пределы 1 ТБ.

Мониторинг среды App Service

Корпорация Майкрософт отслеживает и управляет инфраструктурой платформы в среде App Service Environment версии 3 и масштабирует её по мере необходимости. Как клиент, вы должны отслеживать только планы службы приложений и отдельные запущенные приложения, а также выполнять соответствующие действия. Вы можете настроить параметры диагностики для мониторинга, чтобы поддерживать ваш сценарий.

На портале Azure можно просмотреть некоторые метрики для App Service Environment. Однако эти метрики предназначены для App Service Environment версии 1 и двух ресурсов. Метрики для ресурсов App Service Environment версии 3 не отображаются. Для более ранних версий App Service Environment просмотрите различия функций в обзоре App Service Environment.

Просмотр сценариев журналирования и сообщений

Вы можете интегрировать Azure Monitor для отправки журналов в Azure Storage, Azure Event Hubs или Azure Monitor Logs.

В следующих таблицах показаны сценарии и сообщения, которые можно записать.

состояние App Service Environment Сообщение
Подсеть почти полная The specified App Service Environment is in a subnet that is almost out of space. There are {0} remaining addresses. Once these addresses are exhausted, the App Service Environment will not be able to scale.
Окружение приближается к лимиту экземпляров The specified App Service Environment is approaching the total instance limit of the App Service Environment. It currently contains {0} App Service Plan instances of a maximum 200 instances.
Среда приостановлена The specified App Service Environment is suspended. The App Service Environment suspension may be due to an account shortfall or an invalid virtual network configuration. Resolve the root cause and resume the App Service Environment to continue serving traffic.
Начало обновления A platform upgrade to the specified App Service Environment has begun. Expect delays in scaling operations.
Обновление завершено A platform upgrade to the specified App Service Environment has finished.
Создание плана службы приложений Сообщение
Запуск An App Service plan ({0}) creation has started. Desired state: {1} I{2}v2 workers.
Завершено An App Service plan ({0}) creation has finished. Current state: {1} I{2}v2 workers.
Неудача An App Service plan ({0}) creation has failed. This may be due to the App Service Environment operating at peak number of instances, or run out of subnet addresses.
Операции масштабирования Сообщение
Запуск An App Service plan ({0}) has begun scaling. Current state: {1} I(2)v2. Desired state: {3} I{4}v2 workers.
Завершено An App Service plan ({0}) has finished scaling. Current state: {1} I{2}v2 workers.
Прервано An App Service plan ({0}) was interrupted while scaling. Previous desired state: {1} I{2}v2 workers. New desired state: {3} I{4}v2 workers.
Неудача An App Service plan ({0}) has failed to scale. Current state: {1} I{2}v2 workers.

Включить ведение журнала диагностики

Чтобы включить ведение журнала диагностики для веб-приложения, выполните следующие действия.

  1. На портале Azure перейдите на страницу Overview для веб-приложения.

  2. В меню слева выберите Monitoring>Diagnostic settings.

  3. На странице параметров диагностики выберите "Добавить параметр диагностики".

    Скриншот, показывающий, как выбрать 'Добавить параметр диагностики' для App Service Environment на портале Azure.

  4. В области параметров диагностики укажите имя параметра диагностики для интеграции журнала, например networking-logs.

  5. Выберите и настройте предпочитаемые логи. В этом примере выберите журналы платформы службы приложений.

  6. Выберите предпочитаемые назначения.

  7. Если вы хотите, чтобы диагностика включала данные метрик, выберите метрики.

  8. Нажмите Сохранить.

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

При интеграции с журналами Azure Monitor вы можете просмотреть данные логов, выбрав на портале App Service Environment раздел Logs и создав запрос к AppServicePlatformLogs. Журналы генерируются только в том случае, если App Service Environment имеет событие, которое вызывает журналы. Если у вашей среды App Service Environment нет такого события, то журналы не собираются. Чтобы быстро просмотреть пример журналов, выполните операцию масштабирования с планом службы приложений. Затем вы можете выполнить запрос к AppServicePlatformLogs , чтобы просмотреть созданные журналы.

Создание правила генерации оповещений

Чтобы создать оповещение для журналов веб-приложения, следуйте подробным инструкциям в Создать или изменить правило оповещения поиска по журналам - Azure Monitor.

Ниже приведены основные действия по созданию правила генерации оповещений для размещенного веб-приложения:

  1. На портале Azure перейдите на страницу Monitoring>Alerts для App Service Environment и выберите правило генерации оповещений .

  2. На вкладке Scope убедитесь, что уровень Scope установлен на вашей подписке, и установите Resource на рабочую область журналов Azure Monitor.

  3. На вкладке "Условие " укажите запрос правила и настройте условия.

    1. Задайте имя сигнала для использования пользовательского поиска по журналам. Откроется панель журналов.

    2. В области журналов создайте запрос для оповещения. Например: AppServicePlatformLogs | where ResultDescription contains 'has begun scaling'. Вы также можете начать с предопределенного запроса и изменить по мере необходимости. Сохраните запрос.

    3. Настройте другие условия правила, например пороговое значение в группе логики оповещений .

  4. На вкладке "Сведения" укажите сведения о правиле:

    • Для сведений о проекте убедитесь, что подписка и группа ресурсов указаны должным образом.

    • Для сведений о правиле генерации оповещений выберите правило серьезности и регион и введите имя нового оповещения.

    • Для запроса журнала Identity выберите личность, используемую при выполнении запроса журнала.

    • (Необязательно) Настройте дополнительные параметры по мере необходимости.

  5. (Необязательно) Настройте параметры на оставшихся вкладках в области создания правила генерации оповещений :

    • Действия. Добавление или создание группы действий. Группа действий определяет ответ на оповещение, например отправку сообщения электронной почты или SMS-сообщения.

    • Теги: определение тегов для правила генерации оповещений веб-приложения.

  6. Выберите Review + create. Подтвердите правильность конфигурации оповещения и нажмите кнопку "Создать".

Настройка внутреннего шифрования

Внутренние компоненты или связь в системе App Service Environment не отображаются. Чтобы включить более высокую пропускную способность, шифрование не включено по умолчанию между внутренними компонентами. Система безопасна, так как трафик недоступен для мониторинга и доступа.

Если у вас есть требование соответствия для полного шифрования пути к данным, вы можете включить эту функцию:

  1. На портале Azure перейдите на страницу Overview для App Service Environment.

  2. В меню слева выберите параметры конфигурации>.

  3. В области App Service Environment Configuration установите флажок Internal encryption и выберите Apply.

Скриншот, показывающий, как включить внутреннее шифрование для App Service Environment на портале Azure.

Этот параметр шифрует внутренний сетевой трафик, а также шифрует файл страницы и рабочие диски.

Это важно

Включение шифрования может повлиять на производительность системы. App Service Environment находится в нестабильном состоянии до полного распространения изменения. Полное распространение изменения может занять несколько часов в зависимости от количества экземпляров для обновления.

Избегайте включения шифрования при использовании App Service Environment. Чтобы включить шифрование во время использования среды, перенаправите трафик в резервную копию до завершения операции.

Настройка предпочтения обновления

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

Для каждой среды настройте параметр предпочтения обновления :

  1. На портале Azure перейдите на страницу Overview для App Service Environment.

  2. В меню слева выберите параметры конфигурации>.

  3. В области Конфигурация среды службы приложений выберите предпочтительный вариант обновления.

    • Automatic: Автоматически обновляет App Service Environment в соответствии с вашим выбором.

      • None: (по умолчанию) автоматическое обновление во время процесса обновления для региона.
      • Early: автоматическое обновление с высоким приоритетом по сравнению с другими ресурсами в регионе.
      • Late: автоматическое обновление с низкой приоритетностью по сравнению с другими ресурсами в регионе.
    • Вручную Получите уведомление о доступности обновления и запустите процесс в течение 15 дней. Через 15 дней обновление происходит с другими автоматическими обновлениями в регионе. Для получения дополнительной информации см. Предпочтения обновления для планового обслуживания App Service Environment.

  4. Чтобы сохранить изменения, нажмите кнопку "Применить".

Снимок экрана, показывающий, как задать настройки обновления для App Service Environment на портале Azure.

Эта функция имеет наибольший смысл, если у вас несколько сред App Service, и вам может быть полезно последовательное выполнение их обновлений. Например, можно задать среды разработки и тестирования службы приложений для раннего обновления, а производственные среды службы приложений обновлять позже.

Удаление App Service Environment

Выполните следующие действия, чтобы удалить App Service Environment:

  1. На портале Azure на странице Overview для App Service Environment выберите Delete.

  2. Подтвердите действие удаления, введя имя App Service Environment, и выберите OK.

При удалении App Service Environment вы также удаляете все содержимое и ресурсы в среде.

Снимок экрана, показывающий, как удалить App Service Environment на портале Azure.