Смешанные обычные и скопированные свойства в шаблоне ARM - PullRequest
0 голосов
/ 24 сентября 2019

Используя итерацию свойства , мы можем умножить свойства в ресурсе ARM.Но как я могу смешать эти скопированные свойства с другими, которые напечатаны явно?То, что я ожидаю, может выглядеть как этот фрагмент (конечно, это неверно, потому что свойство «probes» дублируется).

"probes": [
{
    "name": "FirstProbe",
    "properties": {
    "intervalInSeconds": 5,
    "numberOfProbes": 2,
    "port": 123,
    "protocol": "Tcp"
    }
},
{
    "name": "SecondProbe",
    "properties": {
    "intervalInSeconds": 5,
    "numberOfProbes": 2,
    "port": 456,
    "protocol": "Tcp"
    }
}
],
"copy": [
{
    "name": "probes",
    "count": "[length(parameters('someParam'))]",
    "input": {
    "name": "[concat('OtherProbe', parameters('someParam')[copyindex('probes')])]",
    "properties": {
        "intervalInSeconds": 5,
        "numberOfProbes": 2,
        "port": "[parameters('someParam')[copyindex('probes')]]",
        "protocol": "Tcp"
    }
    }
}
]

Так что в этом случае мне нужно, чтобы были явно определены первые два зонда (FirstProbe и SecondProbe), ноТакже мне нужно добавить больше зондов на основе значений массива someParam.

1 Ответ

1 голос
/ 24 сентября 2019

вам просто нужно сделать это:

"variables": {
    "probes-static": [
        {
            "name": "FirstProbe",
            "properties": {
                "intervalInSeconds": 5,
                "numberOfProbes": 2,
                "port": 123,
                "protocol": "Tcp"
            }
        },
        {
            "name": "SecondProbe",
            "properties": {
                "intervalInSeconds": 5,
                "numberOfProbes": 2,
                "port": 456,
                "protocol": "Tcp"
            }
        }
    ],
    "copy": [
        {
            "name": "probes-loop",
            "count": "[length(parameters('someParam'))]",
            "input": {
            "name": "[concat('OtherProbe', parameters('someParam')[copyindex('probes')])]",
                "properties": {
                    "intervalInSeconds": 5,
                    "numberOfProbes": 2,
                    "port": "[parameters('someParam')[copyindex('probes')]]",
                    "protocol": "Tcp"
                }
            }
        }
    ],
    "probes": "[concat(variables('probes-static'), variables('probes-loop'))]"
}

, а затем вы можете использовать variable('probes') в качестве результата и присвоить его свойству LB

...