Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何在Azure ARM模板中选择VM T恤尺寸_Json_Azure_Azure Devops_Arm Template - Fatal编程技术网

Json 如何在Azure ARM模板中选择VM T恤尺寸

Json 如何在Azure ARM模板中选择VM T恤尺寸,json,azure,azure-devops,arm-template,Json,Azure,Azure Devops,Arm Template,我有一个VM deloyment模板,其中我将VM尺寸定义为T恤尺寸,例如small=Standard_DS2_v2、medium=Standard_E4s_v3和large=Standard_E4s_v3 我已经将它们定义为一个数组,如下面的变量部分所示 "parameters": { "vmSpecs": { "type": "array" } }, "variables": { "vmSizeType" :[{

我有一个VM deloyment模板,其中我将VM尺寸定义为T恤尺寸,例如small=Standard_DS2_v2、medium=Standard_E4s_v3和large=Standard_E4s_v3

我已经将它们定义为一个数组,如下面的变量部分所示

 "parameters": {
        "vmSpecs": {
            "type": "array"
        }
},

"variables": {
        "vmSizeType" :[{
            "small" : "Standard_DS2_v2",
            "medium": "Standard_E4s_v3",
            "large" : "Standard_E32s_v3"
        }]
},

"resources": [
{
            "name": "[parameters('vmSpecs')[copyIndex()].vmName]",
            "type": "Microsoft.Compute/virtualMachines",
            "location": "[resourceGroup().location]",
            "apiVersion": "2018-06-01",
            "dependsOn": [
                "VMNIC0Copy",
                "[variables('storageAccountName')]"
            ],
            "copy": {
                "name": "VMCopy",
                "count": "[length(parameters('vmSpecs'))]"
            },

            "properties": {
                "licenseType": "[parameters('vmSpecs')[copyIndex()].licenseType]",
                "hardwareProfile": {
                    "vmSize": "[parameters('vmSpecs')variables('vmSizeType')[copyIndex()].vmSize[1]]"
                }
}
在参数文件中

"vmSpecs": {
            "value": [
                { //vm01
                    "vmName": "test",
                    "dnsDomain": "domain.com",
                    "vmSize": "medium"
                 }
           }
我的问题是如何输入vmSize,它根据定义的内容选择大小,就像您通常(使用点表示法)使用几乎任何语言访问对象属性一样:

"vmSizeType" :{ << should be an object, you only make it harder making it an array
    "small" : "Standard_DS2_v2",
    "medium": "Standard_E4s_v3",
    "large" : "Standard_E32s_v3"
}
...
"vmSize": "[variables('vmSizeType')[parameters('vmSpecs')[copyIndex()].vmSize]]"
            ^^ tshirt variable     ^ ^^ input parameter   ^^ iteration ^^ property
                                   ^ get property defined dynamically, have to use [] syntax instead of dot notation
                                     for static\hardcoded property name you can use dot notation:
                                     variables('vmSizeType').small
“vmSizeType”:{