首页 > 解决方案 > 动态创建 ARM 参数名称

问题描述

我有一个需要动态生成参数名称的场景。像certificate1,certificate2,certificate3 ..等等。目前所有这些参数都应该在主模板中定义。我们可以使用复制在主/父模板中动态迭代和定义参数名称吗?或者在 ARM 模板中是否有一种方法可以实现这一点?

标签: azurearm-templateazure-template

解决方案


您可以copy在变量部分或资源定义\资源属性中使用构造。然后您可以concat()与函数一起使用copyIndex()来创建名称。

例子:

[concat('something-', copyIndex())]

这将为您提供类似 something-0、something-1、something-2 等的名称(copyIndex 从 0 开始)。你也可以copyIndex通过给它一个偏移量来选择偏移:

[concat('something-', copyIndex(10))]

这会给你一些名字,比如 something-10、something-11、something-12 等。

复制变量\属性:

"copy": [
    {
        "name": "nameOfThePropertyOrVariableYouWantToIterateOver",
        "count": 3,
        "input": {
            "name": "[concat('something-', copyIndex('nameOfThePropertyOrVariableYouWantToIterateOver', 1))]"    
        }
    }
]

在这里您需要使用 copyIndex 函数指定您指的是哪个循环,您也可以使用偏移量


推荐阅读