首页 > 解决方案 > 具有不同 Vm 名称、大小和相同自定义的多个 Vms Arm 模板

问题描述

我已经看到许多模板使用复制功能创建多个虚拟机作为循环。例如:vm1、vm2 等。但这不是我们实际应用的方式,因为每个 vm 都有不同的功能,命名约定也无济于事。我正在尝试创建一个具有不同 vM 名称、大小和单个自定义图像的模板。有人可以帮忙吗?

标签: azureazure-devopsazure-resource-managerarm-template

解决方案


我建议在模板的参数或变量部分中使用名称/值对数组,例如,

"parameters": {
    "vms": {
        "type": "array",
        "defaultValue": [
            {
                "name": "vm1",
                "size": "Standard_DS1_v2"
            },
            {
                "name": "vm2",
                "size": "Standard_A1_v2"
            }
        ]
    }
}

然后你可以取消引用数组

"copy": {
    "name": "vmCopy",
    "count": "[length(parameters('vms'))]"    
}

parameters('vms')[copyIndex()].name
parameters('vms')[copyIndex()].size

推荐阅读