Azure前门-多个前端ID作为路由规则的参数数组?

问题描述

很常见,当有多个分配给路由规则的前端ID时,它们的描述如下:

...
"routingRules": [
          {
            "name": "routingRule1","properties": {
              "frontendEndpoints": [
                {
                  "id": "[resourceId('Microsoft.Network/frontDoors/frontendEndpoints',parameters('frontDoorName'),'frontendEndpoint')]"
                },{
                  "id": "[resourceId('Microsoft.Network/frontDoors/frontendEndpoints','frontendEndpoint2')]"
                }
              ],...

就我而言,我想作为参数类型“数组”来执行此操作,但是收到错误消息。请在下面查看我的模板,参数文件错误消息

这是前门ARM参数部署文件

"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#","contentVersion": "1.0.0.0","parameters": {
        "frontdoor_name":  {
            "value":  "frontdoortest"
        },"frontends_all": {
            "value": [
                {
                    "name": "fe1","properties": {
                        "hostName": "frontdoortest.azurefd.net","sessionAffinityEnabledState": "disabled","sessionAffinityTtlSeconds": 0,"resourceState": "Enabled"
                    }
                },{
                    "name": "fe1customdns1","properties": {
                        "hostName": "dev.custom1.com","sessionAffinityEnabledState": "Enabled",{
                    "name": "fe1customdns2","properties": {
                        "hostName": "dev.custom2.com","resourceState": "Enabled"
                    }
                }
            ]
        },"frontends_one": {
                    "value": [
                        {
                            "id": "[concat(resourceId('Microsoft.Network/frontdoors',parameters('frontdoor_name')),'/FrontendEndpoints/fe1customdns1')]",},{
                            "id": "[concat(resourceId('Microsoft.Network/frontdoors','/FrontendEndpoints/fe1customdns2')]",} 
                    ]
        }
    }

这是前门ARM资源部署模板的一部分

...
"parameters": {
    "frontends_all": {
        "type": "array"
    },"frontends_one": {
        "type": "array"
    },"frontdoor_name": {
        "type": "string"
    }
}

...
{
            "type": "Microsoft.Network/frontDoors","apiVersion": "2020-01-01","name": "[parameters('frontdoor_name')]","location": "Global","properties": {
                "resourceState": "Enabled","frontendEndpoints": "[parameters('frontends_all')]",#### NO ERROR 
                "routingRules": [
                        {
                            "name": "routingRule1","properties": {
                                  "frontendEndpoints": "[parameters('frontends_one')]",#### ERROR !!!
                                 "acceptedProtocols": [
                                    "Https"
                                ],"patternsToMatch": [
                                    "/*",],"enabledState": "Enabled","resourceState": "Enabled","routeConfiguration": {
                                    "@odata.type": "#Microsoft.Azure.FrontDoor.Models.FrontdoorForwardingConfiguration","forwardingProtocol": "MatchRequest","backendPool": {
                                        "id": "[concat(resourceId('Microsoft.Network/frontdoors','/backendpools/test')]"
                                    }
                                }
                            }
                        }
...

[错误] BadRequest:RoutingRule routingRule1中缺少FrontendEndpoint [resourceId('Microsoft.Network/frontDoors/frontendEndpoints',parameters('frontdoor_name'),'fe1customdns2')]的主机名,缺少FrontendEndpoint [resourceId(' RoutingRule routingRule1中的Microsoft.Network/frontDoors/frontendEndpoints',parameters('frontdoor_name'),'fe1customdns')]; 资源引用无效:“ [resourceId('Microsoft.Network/frontDoors/frontendEndpoints',parameters('frontdoor_name'),'fe1customdns2')]”; 资源引用无效:“ [[resourceId('Microsoft.Network/frontDoors/frontendEndpoints',parameters('frontdoor_name'),'fe1customdns1')]”

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)