如何在ARM模板中指定相互依赖的参数?

时间:2018-03-06 15:36:01

标签: azure-resource-manager

我想提供参数选项,以便使用来自2016-Datacenter-with-Containers商品的WindowsServer ImageSku或来自Datacenter-Core-1709-with-Containers-smalldisk商品的WindowsServerSemiannual。如何限制用户通过参数来选择其中任何一个,因为它们相互依赖于VM配置文件?

1 个答案:

答案 0 :(得分:0)

如果这些是您唯一的两个选项,请在参数定义中使用allowedValues,然后根据参数值对发布者/商品使用if()语句。像这样:

        "windowsOSVersion": {
        "type": "string",
        "defaultValue": "2016-Datacenter-with-Containers",
        "allowedValues": [
            "2016-Datacenter-with-Containers",
            "Datacenter-Core-1709-with-Containers-smalldisk"
        ]
    }

然后:

                    "imageReference": {
                    "publisher": "MicrosoftWindowsServer",
                    "offer": "[if(contains(parameters('windowsOSVersion'), '2016'),'WindowsServer', 'WindowsServerSemiAnnual')]",
                    "sku": "[parameters('windowsOSVersion')]",
                    "version": "latest"
                },

您可以使用equals而不是contains来获得更强大的功能。