1

我希望能够通过 powershell 将流量从“生产”插槽路由到 Azure 中的不同插槽。我怎么能不使用 RampUpRules 呢?

我们目前在 Azure 中有一个具有 3 个插槽(生产插槽和 2 个附加插槽)的应用程序,我们希望通过发布管道自动将所有流量路由到这两个插槽之一。

我发现“RampUpRule”可以实现这一点(如代码片段所示),但它是通过基于给定规则的 x-ms-routing-name cookie 来实现的。我也知道可以通过应用服务上的 Deployment Slots UI 完成插槽流量,但希望将其自动化(如果可能的话)。

到目前为止,我自己一直无法找到使用现有 Az cmdlet 的方法 - 所以我想知道是否有人知道这样做的方法。

$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 完成它是否可以接受。

4

1 回答 1

1

您的脚本似乎有效。如果您使用 设置ReroutePercentage暂存槽的100,您的用户将自动路由到暂存槽,因为生产的路由百分比设置为0。除非您提供带有x-ms-routing-name=selflike的链接<a href="<webappname>.azurewebsites.net/?x-ms-routing-name=self">Go back to production app</a>

有关更多详细信息,您可以参考此链接

于 2019-05-14T10:02:37.843 回答