在ARM模板中使用复制命令,其中包含重复的属性和不重复的属性

问题描述 投票:0回答:1

我正在创建一个具有FTP流量规则的ARM模板。我想在负载均衡器的探测器属性中使用copy命令为一系列端口创建探测器,但我也有其他探测器不需要重复(落在副本之外)。当我尝试添加两者时,ARM模板说它无效,因为探测器属性已经存在。是否可以使用“复制”语法以及其他值,还是“复制”必须是构建整个数组值列表的唯一ARM语法?

{
  "type": "Microsoft.Network/loadBalancers",
  "sku": {
    "name": "Standard",
    "tier": "Regional"
  },
  "name": "[variables('lb-csl-private.name')]",
  "apiVersion": "2018-10-01",
  "location": "[resourceGroup().location]",
  "scale": null,
  "properties": {
    "frontendIPConfigurations": [
      {
        "name": "LoadBalancerFrontEnd",
        "properties": {
          "privateIPAddress": "[variables('ip-lb-csl-private')]",
          "privateIPAllocationMethod": "Dynamic",
          "subnet": {
            "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('vnet-csl.name'), variables('vnet-csl.subnets.loadBalancerName'))]"
          }
        }
      }
    ],
    "copy": [
      {
        "name": "probes",
        "count": 10,
        "input": {
          "name": "[concat('probe-CSL-PASV-', copyIndex('probes'))]",
          "properties": {
            "protocol": "Tcp",
            "port": "[copyIndex('probes')]",
            "inervalInSeconds": 5,
            "numberOfProbes": 2
          }
        }
      }
    ],
    "probes": [
      {
        "name": "probe-CSL-FTP",
        "properties": {
          "protocol": "Tcp",
          "port": 21,
          "intervalInSeconds": 5,
          "numberOfProbes": 2
        }
      }
    ],
    "inboundNatRules": [],
    "outboundRules": [],
    "inboundNatPools": []
  }
}
arm-template
1个回答
0
投票

可以使用变量来做到这一点:

"variables": {
    "copy": [
      {
        "name": "probes",
        "count": 10,
        "input": {
          "name": "[concat('probe-CSL-PASV-', copyIndex('probes'))]",
          "properties": {
            "protocol": "Tcp",
            "port": "[copyIndex('probes')]",
            "inervalInSeconds": 5,
            "numberOfProbes": 2
          }
        }
      }
    ],
    "otherProbes": [
        {
             probe1
        },
        {
             probe2
        },
        etc
    ]
}

然后,在您的负载均衡器中:

"probes": "[concat(variables('probes'), variables('otherProbes'))]"
© www.soinside.com 2019 - 2024. All rights reserved.