Export/Private/New-ApplicationGatewayRoutingRules.ps1
function Global:New-ApplicationGatewayRoutingRules { <# .SYNOPSIS ... .EXAMPLE ... .PARAMETER xxx ... #> [CmdletBinding()] param ( [Parameter(Mandatory = $true)] $HttpSettings, [Parameter(Mandatory = $true)] $Listeners, [Parameter(Mandatory = $true)] $BackendAddressPool, [Parameter(Mandatory = $false)] [switch] $IncludeSsl ) process { Write-Verbose "Adding RoutingRules..." $Rules = @{ Private = $null Public = $null PublicSsl = $null RedirectConfiguration = $null Collection = @() } $HttpSettingWebclientFirst = ($HttpSettings.Webclients.GetEnumerator() | Select-Object -First 1).Value $Rules.Private = New-AzApplicationGatewayRequestRoutingRule -Name "WebclientRule_PrivatePort8080" -RuleType basic -BackendHttpSettings $HttpSettingWebclientFirst -HttpListener $Listeners.PrivateHttp -BackendAddressPool $BackendAddressPool $Rules.Collection += $Rules.Private if ($IncludeSsl) { $Rules.RedirectConfiguration = New-AzApplicationGatewayRedirectConfiguration -Name "PublicPort80to443" -RedirectType Permanent -TargetListener $Listeners.PublicHttps -IncludePath $true -IncludeQueryString $true $Rules.Public = New-AzApplicationGatewayRequestRoutingRule -Name "WebclientRule_PublicPort80to443" -RuleType basic -HttpListener $Listeners.PublicHttp -RedirectConfiguration $Rules.RedirectConfiguration $Rules.PublicSsl = New-AzApplicationGatewayRequestRoutingRule -Name "WebclientRule_PublicPort443" -RuleType basic -BackendHttpSettings $HttpSettingWebclientFirst -HttpListener $Listeners.PublicHttps -BackendAddressPool $BackendAddressPool $Rules.Collection += ($Rules.Public, $Rules.PublicSsl) } else { $Rules.Public = New-AzApplicationGatewayRequestRoutingRule -Name "WebclientRule_PublicPort80" -RuleType basic -BackendHttpSettings $HttpSettingWebclientFirst -HttpListener $Listeners.PublicHttp -BackendAddressPool $BackendAddressPool $Rules.Collection += $Rules.Public } $Rules } } |