Маршрутизация трафика в Службе приложений

Завершено

По умолчанию все клиентские запросы, поступающие на URL-адрес приложения (http://<app_name>.azurewebsites.net), направляются в рабочий слот. Вы можете перенаправить часть этого трафика в другой слот. Это очень удобно, когда вам нужно собрать отзывы пользователей о новой версии, но вы пока не готовы публиковать ее в рабочей среде.

Автоматическая маршрутизация рабочего трафика

Для автоматической маршрутизации производственного трафика:

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

  2. В столбце Процент трафика для слота, в который нужно направить часть трафика, укажите значение в процентах (от 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. Это расширенный сценарий, в котором вы можете «скрыть» свой промежуточный слот от других пользователей, позволяя внутренним командам тестировать изменения в слоте.