azure - 是否可以通过 Az Cmdlet 以编程方式路由 Slot 流量?
问题描述
我希望能够通过 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 完成它是否可以接受。
解决方案
您的脚本似乎有效。如果您使用 设置ReroutePercentage
暂存槽的100
,您的用户将自动路由到暂存槽,因为生产的路由百分比设置为0
。除非您提供带有x-ms-routing-name=self
like的链接<a href="<webappname>.azurewebsites.net/?x-ms-routing-name=self">Go back to production app</a>
。
有关更多详细信息,您可以参考此链接。
推荐阅读
- javascript - JavaScript 或 jQuery 将表格的最后一行加粗并删除超链接。ID 为“My_Table_1”的表
- jquery - 如何简化此代码(通过使用循环?)
- mysql - 多个表的 JOIN 语句不起作用
- grep - 使用 grep -v '^$' 时出现非法变量名错误
- android - 谷歌地图 - TileOverlay - 拉伸瓷砖以获得更高的缩放级别
- python - 如何键入提示 Python 函数返回从超类派生的任何类的实例?
- excel - 从 Excel 保存多个 PDF 文件
- kotlin - 在泛型中使用 Nothing 是一个好习惯吗?
- javascript - 如何针对不同的数组转换或排序数组?
- r - 仅在单击菜单项时加载闪亮模块