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


Настройка приложения Службы приложений

Примечание.

Начиная с 1 июня 2024 г. все созданные Служба приложений приложения будут иметь возможность создать уникальное имя узла по умолчанию с помощью соглашения <app-name>-<random-hash>.<region>.azurewebsites.netоб именовании. Существующие имена приложений останутся неизменными.

Пример: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

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

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

Настройка параметров приложения

Примечание.

  • Имена параметров приложения могут содержать только буквы, цифры (0–9), периоды ("."), а также символы подчеркивания ("_")
  • Специальные символы в значении параметра приложения должны быть экранироваться по мере необходимости целевой ОС.

Например, чтобы задать переменную среды в Служба приложений Linux со значением "pa$$w0rd\" строки для параметра приложения, должно быть:"pa\$\$w0rd\\"

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

Для разработчиков ASP.NET и ASP.NET Core настройка параметров приложения в Службе приложений выполняется так же, как и настройка их в <appSettings> в Web.config или appsettings.json, но значения в Службе приложений переопределяют значения в Web.config или appsettings.json. Вы можете безопасно сохранить параметры разработки (например, локальный пароль MySQL) в Web.config или appsettings.json, а производственные секреты (например, пароль базы данных MySQL Azure) — в Службе приложений. Один и тот же код использует параметры разработки при локальной отладке, а производственные секреты — при развертывании в Azure.

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

Параметры приложения всегда шифруются при хранении.

Примечание.

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

  1. На портале Azure найдите и выберите Службы приложений, а затем выберите приложение.

    Поиск Служб приложений

  2. В меню слева приложения выберите параметры приложения переменных>среды.

    Снимок экрана: переход на страницу параметров приложения.

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

  3. Чтобы добавить новый параметр приложения, нажмите кнопку "Добавить". Чтобы изменить параметр, щелкните этот параметр.

  4. В диалоговом окне можно прикрепить параметр к текущему слоту.

    Примечание.

    В службе приложений Linux по умолчанию или в настраиваемом контейнере Linux любая вложенная структура ключей JSON в имени параметра приложения, например ApplicationInsights:InstrumentationKey, должна указываться в службе приложений для имени ключа как ApplicationInsights__InstrumentationKey. Другими словами, символы : следует заменять на __ (двойное подчеркивание). Все периоды в имени параметра приложения будут заменены одним символом _ подчеркивания.

  5. По завершении нажмите кнопку "Применить". Не забудьте выбрать "Применить обратно" на странице переменных среды.

Групповое изменение параметров приложения

Нажмите кнопку "Дополнительно изменить ". Измените параметры в текстовой области. По завершении выберите ОК. Не забудьте выбрать "Применить обратно" на странице переменных среды.

Параметры приложения задаются в следующем формате JSON.

[
  {
    "name": "<key-1>",
    "value": "<value-1>",
    "slotSetting": false
  },
  {
    "name": "<key-2>",
    "value": "<value-2>",
    "slotSetting": false
  },
  ...
]

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

Для разработчиков ASP.NET и ASP.NET Core установка строк подключения в Службе приложений выполняется так же, как и установка их в <connectionStrings> в Web.config, но значения, заданные в Службе приложений, переопределяют значения в Web.config. Вы можете безопасно сохранить параметры разработки (например, файл базы данных) в Web.config, а производственные секреты (например, учетные данные базы данных SQL) — в Службе приложений. Один и тот же код использует параметры разработки при локальной отладке, а производственные секреты — при развертывании в Azure.

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

Примечание.

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

Во время выполнения строки подключения доступны в виде переменных среды с соответствующими префиксами для каждого типа соединения.

  • SQLServer: SQLCONNSTR_
  • MySQL: MYSQLCONNSTR_
  • SQLAzure: SQLAZURECONNSTR_
  • Пользовательская: CUSTOMCONNSTR_
  • PostgreSQL: POSTGRESQLCONNSTR_
  • Центр уведомлений: NOTIFICATIONHUBCONNSTR_
  • служебная шина:SERVICEBUSCONNSTR_
  • Концентратор событий: EVENTHUBCONNSTR_
  • Document Db: DOCDBCONNSTR_
  • Кэш Redis: REDISCACHECONNSTR_

Примечание.

Приложения .NET, предназначенные для PostgreSQL, Концентратор уведомлений, служебная шина, Концентратор событий, Кэш Document Db и Redis, должны задать строка подключения в качестве обходного решения для известной проблемы в .NET EnvironmentVariablesConfigurationProvider

Например, к строке подключения MySQL с именем connectionstring1 можно обращаться как к переменной среды MYSQLCONNSTR_connectionString1. Инструкции для конкретных стеков языка см. в следующих разделах.

Строки подключения всегда шифруются при хранении.

Примечание.

Строки подключения также можно разрешить из Key Vault с помощью ссылок на Key Vault.

  1. На портале Azure найдите и выберите Службы приложений, а затем выберите приложение.

    Поиск Служб приложений

  2. В меню слева приложения выберите строки подключения к переменным>среды.

    Снимок экрана: пользовательский интерфейс, открытый для строк подключения.

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

  3. Чтобы добавить новую строка подключения, нажмите кнопку "Добавить". Чтобы изменить строка подключения, выберите строка подключения.

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

  5. По завершении нажмите кнопку "Применить". Не забудьте выбрать "Применить обратно" на странице переменных среды.

Групповое изменение строк подключения

Нажмите кнопку "Дополнительно изменить ". Измените строки подключения в текстовой области. По завершении нажмите кнопку "Применить". Не забудьте выбрать "Применить обратно" на странице переменных среды.

Строки подключения задаются в следующем формате JSON.

[
  {
    "name": "name-1",
    "value": "conn-string-1",
    "type": "SQLServer",
    "slotSetting": false
  },
  {
    "name": "name-2",
    "value": "conn-string-2",
    "type": "PostgreSQL",
    "slotSetting": false
  },
  ...
]

Настройка параметров языкового стека

Настройка общих параметров

На портале Azure найдите и выберите Службы приложений, а затем выберите приложение. В меню приложения слева выберите Конфигурация>Общие параметры.

Общие параметры

Здесь можно настроить некоторые общие параметры для приложения. Для некоторых параметров необходимо выполнить масштабирование до более высокой ценовой категории.

  • Параметры стека: программный стек для запуска приложения, включая версии языка и пакета SDK.

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

    Общие параметры для контейнеров Linux

  • Параметры платформы: позволяют настраивать параметры для платформы размещения, включая следующие.

    • Скорость платформы: 32-разрядная или 64-разрядная. Только для приложений для Windows.
    • Состояние FTP: возможность разрешить только FTPS или отключить протокол FTP в целом.
    • HTTP version (Версия HTTP): задайте значение 2.0, чтобы включить поддержку протокола HTTPS/2.

    Примечание.

    Большинство современных браузеров поддерживают протокол HTTP/2 только через TLS, а для незашифрованного трафика продолжает использоваться протокол HTTP/1.1. Чтобы клиентские браузеры могли подключаться к приложению по протоколу HTTP/2, обеспечьте безопасность настраиваемого DNS-имени. Дополнительные сведения см. в учебнике Защита пользовательского DNS-имени с помощью привязки TLS/SSL в Службе приложений Azure.

    • Веб-сокеты: например, для ASP.NET SignalR или socket.io.

    • Always On: приложение остается загруженным даже при отсутствии трафика. Если AlwaysOn не включен (по умолчанию), приложение выгрузится через 20 минут без входящих запросов. Выгруженное приложение может вызвать высокую задержку для новых запросов, так как ему нужно снова загрузиться. Если параметр Всегда включено включен, внешняя подсистема балансировки нагрузки отправляет запрос GET к корню приложения каждые пять минут. Непрерывная проверка связи предотвращает выгрузку приложения.

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

    • ARR affinity (Сходство для маршрутизации запросов приложений): в развертывании с несколькими экземплярами убедитесь, что в течение всего сеанса клиент направляется в один и тот же экземпляр. Для приложений без отслеживания состояния этот параметр можно установить в значение Off (Выкл.).

    • Только HTTPS: при включении весь HTTP-трафик перенаправляется на HTTPS.

    • Минимальная версия TLS: выберите минимальную версию шифрования TLS, необходимую для приложения.

  • Debugging (Отладка): включение удаленной отладки для приложений ASP.NET, ASP.NET Core или Node.js. Этот параметр автоматически отключается через 48 часов.

  • Incoming client certificates (Входящие сертификаты клиента): требование сертификатов клиента при взаимной проверке подлинности.

Настройка документов по умолчанию

Этот параметр существует только для приложений для Windows.

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

  1. На портале Azure найдите и выберите Службы приложений, а затем выберите приложение.

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

    Стандартные документы

  3. Чтобы добавить документ по умолчанию, нажмите кнопку "Создать документ". Чтобы удалить документ по умолчанию, выберите "Удалить " справа.

Сопоставление URL-пути с каталогом

По умолчанию Служба приложений запускает приложение из корневого каталога кода приложения. Однако некоторые веб-платформы не запускаются в корневом каталоге. Например, Laravel запускается в подкаталоге public. Такое приложение будет доступно по адресу http://contoso.com/public, например, но обычно требуется направить http://contoso.com в каталог public. Если файл запуска приложения находится в другой папке или в репозитории имеется несколько приложений, можно изменить или добавить виртуальные приложения и каталоги.

Внимание

Виртуальный каталог для функции физического пути доступен только в приложениях Windows.

  1. На портале Azure найдите и выберите Службы приложений, а затем выберите приложение.

  2. В меню приложения слева выберите Конфигурация>Сопоставления путей

  3. Выберите новое виртуальное приложение или каталог.

    • Чтобы сопоставить виртуальный каталог с физическим путем, установите флажок Каталог. Укажите виртуальный каталог и соответствующий относительный (физический) путь к корню веб-сайта (D:\home).
    • Чтобы пометить виртуальный каталог как веб-приложение, снимите флажок Каталог.

    Флажок

  4. Нажмите ОК. Не забудьте выбрать "Сохранить" на странице "Конфигурация".

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

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

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

  1. На портале Azure найдите и выберите Службы приложений, а затем выберите приложение.

  2. В меню приложения слева выберите Конфигурация>Сопоставления путей.

    Сопоставления путей

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

    • Расширение. Расширение обрабатываемого файла, например *.php или handler.fcgi.
    • Обработчик скриптов. Абсолютный путь к обработчику скриптов. Обработчиком скриптов будут обрабатываться запросы к файлам, соответствующим указанному расширению. Используйте путь D:\home\site\wwwroot для указания корневого каталога веб-приложения.
    • Аргументы. Необязательные аргументы командной строки для обработчика скриптов.
  4. Нажмите ОК. Не забудьте выбрать "Сохранить" на странице "Конфигурация".

Настройка пользовательских контейнеров

Следующие шаги