评估Azure资源管理器(ARM)模板

时间:2017-07-12 21:15:30

标签: azure azure-template

我在构建模板时使用copy函数部署链接模板 n ,同时增加对象变量(例如从vmRole1到{ {1}})正在使用但看起来虽然我能够将一个合适的变量字符串连接在一起(例如vmRole2),但它在传递给链接之前从未实际得到过评估模板。

在将模板发送到链接模板之前,有没有办法强制ARM模板实际评估循环内的连接字符串?

可变样本:

variables('vmRole1').roleInstanceCount

资源示例:

"vmRole1": {
  ...
  "roleInstanceCount": 2,
  ...
}

1 个答案:

答案 0 :(得分:1)

简单回答 - 没有。
奇怪的回答 - 也许,如果您使用另一组嵌套模板来验证这些值 答案很长 - 你这样做完全错了。我不知道你为什么要做这么奇怪的事情,试图假装你动态地构建一些东西......

尝试这样做(使用你的路线):

"value": "[variables(concat('vmRole', copyIndex())).roleInstanceCount]

但老实说,我将vmRole1 \ vmRole2 ... \ vmRole100废话转换为数组和引用对象,如下所示:

"value": "[variables('vmReferenceArray')[copyIndex()].propertyX]"

你的变量看起来像这样:

"vmReferenceArray": [
    {
        propertyX: ...
        propertyY: ...
        ...
    },
    {
        ...
    },
    ...
    {
        ...
    }
]