是否有Azure资源模板文档?我正在尝试使用资源模板重新创建VM,我唯一缺少的是从映像创建数据磁盘,就像创建操作系统磁盘一样。我编辑了JSON模板:
"dataDisks": [
{
"lun": 0,
"name": "[concat(parameters('virtualMachines_testVM_name'),'-disk-1')]",
"createOption": "FromImage",
"vhd": {
"uri": "[concat('https', '://', parameters('storageAccounts_rmtemplatetest6221copy_name'), '.blob.core.windows.net', concat('/vhds/', parameters('virtualMachines_testVM_name'),'-disk-1-201649102835.vhd'))]"
},
"caching": "ReadWrite"
}
]
但是在部署模板时,我在Azure中遇到以下错误
缺少必需参数'dataDisk.image'
到目前为止,我重新创建数据磁盘的唯一方法是从JSON模板中删除上面的代码,然后在没有数据磁盘的情况下创建机器后使用Powershell,但我想仅使用资源模板自动部署。
答案 0 :(得分:1)
在Azure快速启动模板中,您可以找到使用自定义映像创建VM的JSON模板,包括数据磁盘:
https://github.com/Azure/azure-quickstart-templates/tree/master/101-vm-user-image-data-disks
只是一个非常重要的注意事项 - 目标存储帐户应该是VHD所在的相同帐户。
JSON Schema上没有常规文档。最好的来源是检查Schema本身,所以:
<强>更新强>
根据自定义映像(包括数据磁盘)创建VM时,必须在自定义数据磁盘所在的同一存储帐户中创建整个VM。截至今日(2016-05-10),没有选项可指示ARM跨存储帐户复制VHD。
如果您想使用数据磁盘从自定义映像创建VM,那么这就是全部。 如果您只想使用新的空数据磁盘创建VM,则可以使用以下快速启动模板:
https://github.com/Azure/azure-quickstart-templates/tree/master/101-vm-multiple-data-disk
您只需定义所需的数据磁盘大小及其存储位置。
答案 1 :(得分:0)
您遇到的问题是您已将模板配置为制作图像副本,并且未指定图像。
您需要将createOption设置为fromImage,并指定图像
"dataDisks": [
{
"name": "[concat(variables('vmName'),'-dataDisk')]",
"lun": 0,
"createOption": "FromImage",
"image": {
"uri": "[variables('dataDiskUrl')]"
},
"vhd": {
"uri": "[variables('dataDiskVhdName')]"
}
}
],
或者,如果您只想使用现有磁盘,可以使用attach,(在此配置中也可以使用empty,它将创建一个空磁盘)
"dataDisks": [
{
"name": "[concat(variables('vmName'),'-dataDisk')]",
"lun": 0,
"createOption": "attach",
"vhd": {
"uri": "[variables('dataDiskVhdName')]"
}
}
],