【问题标题】:Is it possible to route Slot traffic programmatically via an Az Cmdlet?是否可以通过 Az Cmdlet 以编程方式路由 Slot 流量?
【发布时间】:2019-05-14 07:31:25
【问题描述】:

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

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

我发现“RampUpRule”可以实现这一点(在代码 sn-p 中显示),但它是通过基于给定规则的 x-ms-routing-name cookie 实现的。我也知道插槽流量可以通过应用服务上的部署插槽 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 完成它是否可以接受。

【问题讨论】:

    标签: azure azure-web-app-service azure-powershell azure-deployment-slots


    【解决方案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>

    更多详情可以参考这个link

    【讨论】:

    • 谢谢,再次检查后 - 如果流量是通过 UI 配置的,Azure 似乎就是这样做的,它只是使用与插槽名称相同的 x-ms-routing-name cookie。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 2014-11-12
    • 1970-01-01
    • 2021-02-07
    相关资源
    最近更新 更多