看起来我遇到了ARM模板的局限性,希望有人能提出解决方案。
我的deployVM。json模板使用复制函数来创建托管数据盘,它可以正常工作,但是,我需要附加一个不遵循复制模式的附加数据盘。
"copy": [
{
"name": "dataDisks",
"count": "[length(parameters('sharedVariables').disks.config)]",
"input": {
"name": "[concat(variables('vmName'),'-',parameters('sharedVariables').disks.config[CopyIndex('dataDisks')].name)]",
"diskSizeGB": "[parameters('sharedVariables').disks.config[CopyIndex('dataDisks')].diskSizeGB]",
"lun": "[parameters('sharedVariables').disks.config[copyIndex('dataDisks')].lun]",
"createOption": "Empty",
"managedDisk": {
"storageAccountType": "[parameters('sharedVariables').disks.accountType]"
}
}
}
]
-
datadisks[]
属性是不允许的,
-
创建整个VM资源的第二个实例也不是
允许,
因此,我创建了一个子模板来绕过上述限制。子模板创建数据盘并将其连接到vm,
但是
"resources" : [
//Create a managed disk using an existing VHD
{
"apiVersion": "2017-03-30",
"type": "Microsoft.Compute/disks",
"name": "[concat(parameters('vmName'),'-mediadisk-001')]",
"location": "[resourceGroup().location]",
"tags": {
"Purpose": "Managed disk containing VHD of installation media",
"createdBy": "[parameters('sharedVariables').createdBy]"
},
"sku": {
"name": "[parameters('sharedVariables').media.storageAccountType]"
},
"properties": {
"creationData": {
"createOption": "Import",
"sourceUri": "[parameters('sharedVariables').media.sourceVhdUri]"
},
"diskSizeGB": "[parameters('sharedVariables').media.vhdManagedDiskSize]"
}
},
//Attach managed disk to existing VM
{
"apiVersion": "2017-03-30",
"type": "Microsoft.Compute/virtualMachines",
"name": "[parameters('vmName')]",
"location": "[resourceGroup().location]",
"dependsOn": [ "[concat(parameters('vmName'),'-mediadisk-001')]" ],
"properties": {
"storageProfile": {
"dataDisks": [
{
"lun": "[add(length(parameters('sharedVariables').disks.config),1)]",
"name": "[concat(parameters('vmName'),'-mediadisk-001')]",
"createOption": "Attach",
"managedDisk": {
"id": "[resourceId('Microsoft.Compute/disks/', concat(parameters('vmName'),'-mediadisk-001'))]"
}
}
]
}
}
}
]
"resources" : [
{
"apiVersion": "2017-03-30",
"type": "Microsoft.Compute/virtualMachines",
"name": "[parameters('vmName')]",
"location": "[resourceGroup().location]",
"dependsOn": [],
"properties": {
"storageProfile": {
"dataDisks": [
{
"lun": "[add(length(parameters('sharedVariables').disks.config),1)]",
"name": "[concat(parameters('vmName'),'-mediadisk-001')]",
"createOption": "FromImage",
"image": {
"uri": "concat(parameters('vmName'),'-mediadisk-001')"
},
"vhd": {
"uri": "[parameters('sharedVariables').media.sourceVhdUri]"
},
"managedDisk": {
"id": "[resourceId('Microsoft.Compute/disks/', concat(parameters('vmName'),'-mediadisk-001'))]"
}
}
]
}
}
}
]
"Addition of a blob based disk to VM with managed disks is not supported
。真的吗?这是不是说不能同时使用托管磁盘和存储帐户磁盘?最后一次尝试,我删除了以下行:
"managedDisk": {
"id": "[resourceId('Microsoft.Compute/disks/', concat(parameters('vmName'),'-mediadisk-001'))]"
}
但同样的错误。
我可以在门户中重新连接磁盘,我唯一的另一个想法是创建另一个磁盘,而无需返回到存储帐户磁盘
copy[]
TIA
使现代化