如何从 .NET 更新基于 Azure 应用程序网关路径的规则 UrlPathMap

How to update Azure Application Gateway Path Based Rule UrlPathMap from .NET

在 Azure 门户上,我能够设置具有一些默认设置的基于路径的规则,以及一个子规则列表 (UrlPathMap)。

每个子规则都有必须配置的名称、路径、后端池和 HTTP 设置。

据我所知,我可以通过 Azure 门户轻松更新此地图。 作为应用程序安装的一部分,我希望能够从代码中动态创建此类子规则。我更愿意直接从 .NET(ASP.NET Core 3.1)应用程序执行此操作,但 Azure CLI 或 Azure Powershell 脚本对我来说也应该没问题。

此时,我尝试使用 Microsoft.Azure.Management.Fluent 库、Azure CLI 和 Azure Powershell,但我没有看到执行所需操作的直接选项。

很高兴在这里得到一些帮助。

根据我的测试,我们可以使用下面的PowerShell脚本来创建一个子规则。

Connect-AzAccount

$groupName=""
$gatewayName=""
$poolNmae=""
$httpName=""
$pathRuleName=""


# get original sub-rule in your path rule
$appgateway=Get-AzApplicationGateway -Name $gatewayName -ResourceGroupName $groupName
$pathmap=Get-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway $appgateway -Name $pathRuleName
$t =$pathmap.PathRules.ToArray()

# add a new sub-rule to the path rule
#  1. get the require backendpool or backendhttp settings
$pool=Get-AzApplicationGatewayBackendAddressPool -Name $poolNmae -ApplicationGateway $appgateway
$http=Get-AzApplicationGatewayBackendHttpSetting -Name $httpName -ApplicationGateway $appgateway
#  2. create the sub-rule
$r=New-AzApplicationGatewayPathRuleConfig -Name "rule01" -Paths "/path" -BackendAddressPool  $pool -BackendHttpSettings $http
$t += $r
#  3. update the path rule to add the new sub rule
Set-AzApplicationGatewayUrlPathMapConfig -ApplicationGateway $appgateway -Name $pathmap.Name -PathRules $t -DefaultBackendAddressPool $pool -DefaultBackendHttpSettings $http
#  4. make the update effective
Set-AzApplicationGateway -ApplicationGateway $appgateway