Можно ли программно маршрутизировать трафик слотов с помощью командлета Az?

Я хотел бы иметь возможность перенаправлять трафик из «производственного» слота в другой слот в Azure через PowerShell. Как я могу сделать это без использования RampUpRules?

В настоящее время у нас есть приложение в Azure с 3 слотами (производственный слот и 2 дополнительных слота), и через конвейер выпуска мы хотели бы автоматически направлять весь трафик в один из этих двух слотов.

Я обнаружил, что «RampUpRule» может достичь этого (показано во фрагменте кода), но делает это с помощью файла cookie x-ms-routing-name на основе данного правила. Я также знаю, что трафик слотов может быть выполнен через пользовательский интерфейс слотов развертывания в службе приложений, но хотел бы автоматизировать это (если возможно).

Мне пока не удалось найти способ сделать это, используя существующие командлеты Az, поэтому мне было интересно, знает ли кто-нибудь способ сделать это.

$appName = "myapp"
$appService = Get-AzWebApp -Name $appName
$appConfig = $appService.SiteConfig

$rulesList = New-Object -TypeName System.Collections.Generic.List[Microsoft.Azure.Management.WebSites.Models.RampUpRule]
$rule = New-Object -TypeName Microsoft.Azure.Management.WebSites.Models.RampUpRule
$rule.Name = "LiveTraffic"
$rule.ActionHostName = "myapp-staging.azurewebsites.net"
$rule.ReroutePercentage = 100
$rulesList.Add($rule)

$appConfig.Experiments.RampUpRules = $rulesList

Set-AzWebApp -WebApp $appService

RampUpRules позволяет достичь того, чего мы хотели, но я не уверен, что это будет приемлемо с помощью установленного файла cookie.


person Stephen D.    schedule 14.05.2019    source источник


Ответы (1)


Кажется, ваш сценарий работает. Если вы установите ReroutePercentage промежуточного слота с 100, ваши пользователи будут автоматически перенаправлены в промежуточный слот, потому что процент маршрутизации производства установлен на 0. Если вы не предоставите ссылку с x-ms-routing-name=self как <a href="<webappname>.azurewebsites.net/?x-ms-routing-name=self">Go back to production app</a>.

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

person Joy Wang    schedule 14.05.2019
comment
Спасибо, после повторной проверки - похоже, это все, что делает Azure, если трафик настраивается через пользовательский интерфейс, он просто использует тот же файл cookie x-ms-routing-name с именем слота. - person Stephen D.; 15.05.2019