Маршрутизация трафика в Службе приложений
По умолчанию все клиентские запросы, поступающие на URL-адрес приложения (http://<app_name>.azurewebsites.net
), направляются в рабочий слот. Вы можете перенаправить часть этого трафика в другой слот. Это очень удобно, когда вам нужно собрать отзывы пользователей о новой версии, но вы пока не готовы публиковать ее в рабочей среде.
Автоматическая маршрутизация рабочего трафика
Для автоматической маршрутизации производственного трафика:
Перейдите на страницу ресурсов вашего приложения и выберите Слоты развертывания.
В столбце Процент трафика для слота, в который нужно направить часть трафика, укажите значение в процентах (от 0 до 100) от общего объема распределяемого трафика. Выберите Сохранить.
После сохранения настройки указанный процент клиентов случайным образом направляется в непроизводственный слот.
После того, как клиент автоматически направляется в конкретный слот, он «прикрепляется» к данному слоту на время всего сеанса клиента. Вы можете проверить, к какому слоту прикреплен клиент, просмотрев значение параметра cookie x-ms-routing-name
в заголовках HTTP средствами браузера. Если запросы направляются в промежуточный слот, этот параметр имеет значение x-ms-routing-name=staging
. Если запросы направляются в рабочий слот, этот параметр имеет значение x-ms-routing-name=self
.
Маршрутизация рабочего трафика вручную
Кроме автоматической маршрутизации трафика, Служба приложений поддерживает направление запросов в конкретные слоты. Это полезно в тех случаях, когда вы хотите, чтобы ваши пользователи могли включить или отключить ваше бета-приложение. Для маршрутизации рабочего трафика вручную применяется параметр запроса x-ms-routing-name
.
Например, чтобы позволить пользователям отказаться от вашего бета-приложения, вы можете разместить эту ссылку на своей веб-странице:
<a href="<webappname>.azurewebsites.net/?x-ms-routing-name=self">Go back to production app</a>
Строка x-ms-routing-name=self
определяет рабочий слот. После того, как клиентский браузер получает доступ к ссылке, она перенаправляется в рабочий слот. Каждый последующий запрос содержит файл cookie x-ms-routing-name=self
, который прикрепляет сеанс к производственному слоту.
Чтобы пользователи могли участвовать в вашем бета-приложении, необходимо установить тот же параметр запроса для имени непроизводственного слота. Приведем пример:
<webappname>.azurewebsites.net/?x-ms-routing-name=staging
По умолчанию для новых слотов задано правило маршрутизации 0%
(значение по умолчанию отображается серым цветом). При явном указании значения 0%
правила маршрутизации, отображаемого в черном цвете, пользователи могут получить доступ к промежуточному слоту вручную с помощью x-ms-routing-name
параметра запроса. Однако они не будут перенаправлены в слот автоматически, потому что процент маршрутизации установлен на 0. Это расширенный сценарий, в котором вы можете «скрыть» свой промежуточный слот от других пользователей, позволяя внутренним командам тестировать изменения в слоте.