JSON объекты как аргумент функции шаблона ARM - PullRequest
0 голосов
/ 22 ноября 2018

Предлагает ли шаблон ARM способ определения встроенного объекта JSON в качестве параметра функции шаблона?

Что-то, что может выглядеть так, где я смешиваю ссылки, функции шаблона Azure и объект JSON.

"value": "[concat(reference('ArrayMaker').outputs.fooBarArray.value], 
          [{ "cat": "Tom", "mouse" : "Jerry"}, { "cat":"Garfield", "mouse":"[reference('MouseTrap').outputs.mouseTrap.value]"} ] )]"

Использование переменных может показаться естественным для этого, но поскольку значение построено из ссылки, переменные использовать нельзя.

1 Ответ

0 голосов
/ 22 ноября 2018

ну не изначально.вы можете взломать вложенные развертывания, что-то вроде этого:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "garfiled": {
            "type": "string"
        },
        "catData": {
            "type": "object",
            "defaultValue": {
                "cat": "Tom"
            }
        }
    },
    "variables": {
        "cat": { <<< if you can\need to construct whole variable in the nested template
            "cat": "Garfield",
            "mouse": "[parameters('garfiled')]"
        },
        "t&j": { <<< if you need to pass in part of the variable to the nested template, you can also create another variable to create an object of a proper structure to union with existing object
            "mouse": "Jerry"
        }
    },
    "resources": [],
    "outputs": {
        "garfiled": {
            "type": "object",
            "value": "[variables('cat')]"
        },
        "t&j": {
            "type": "object",
            "value": "[union(variables('t&j'), parameters('catData'))]"
        }
    }
}

Затем вы будете использовать вложенный шаблон для передачи ссылки на этот шаблон и вывода результата.

...