dataDisk.image Azure 资源模板中的参数
dataDisk.image parameter in Azure Resource Template
是否有任何 Azure 资源模板文档?我正在尝试使用资源模板重新创建 VM,而我唯一缺少的是从映像创建数据磁盘,方法与创建 OS 磁盘的方式相同。我编辑了 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 中遇到以下错误
Required parameter 'dataDisk.image' is missing
到目前为止,我重新创建数据磁盘的唯一方法是从 JSON 模板中删除上述代码,然后在没有数据磁盘的情况下创建机器后使用 Powershell,但我想自动化仅使用资源模板进行部署。
在 Azure 快速入门模板中,您可以找到 JSON 使用自定义映像创建 VM 的模板,包括数据磁盘:
https://github.com/Azure/azure-quickstart-templates/tree/master/101-vm-user-image-data-disks
只有一个非常重要的注意事项 - 目标存储帐户应该与您的 VHD 所在的帐户相同。
JSON 架构没有固定文档。最好的来源是检查架构本身,所以:
- https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json
- http://schema.management.azure.com/schemas/2015-08-01/Microsoft.Compute.json#/resourceDefinitions/virtualMachine
更新
当您基于自定义映像(包括数据磁盘)创建 VM 时,您必须在自定义数据磁盘所在的同一存储帐户中创建整个 VM。截至今天 (2016-05-10),没有选项指示 ARM 跨存储帐户复制 VHD。
如果您想使用数据磁盘从自定义映像创建 VM,这就是全部。
如果您只想使用新的空数据磁盘创建 VM,则可以使用以下快速入门模板:
https://github.com/Azure/azure-quickstart-templates/tree/master/101-vm-multiple-data-disk
您只需定义所需的数据磁盘大小及其存储位置。
您遇到的问题是您将模板配置为复制图像,但没有指定图像。
您需要将 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')]"
}
}
],
是否有任何 Azure 资源模板文档?我正在尝试使用资源模板重新创建 VM,而我唯一缺少的是从映像创建数据磁盘,方法与创建 OS 磁盘的方式相同。我编辑了 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 中遇到以下错误
Required parameter 'dataDisk.image' is missing
到目前为止,我重新创建数据磁盘的唯一方法是从 JSON 模板中删除上述代码,然后在没有数据磁盘的情况下创建机器后使用 Powershell,但我想自动化仅使用资源模板进行部署。
在 Azure 快速入门模板中,您可以找到 JSON 使用自定义映像创建 VM 的模板,包括数据磁盘:
https://github.com/Azure/azure-quickstart-templates/tree/master/101-vm-user-image-data-disks
只有一个非常重要的注意事项 - 目标存储帐户应该与您的 VHD 所在的帐户相同。
JSON 架构没有固定文档。最好的来源是检查架构本身,所以:
- https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json
- http://schema.management.azure.com/schemas/2015-08-01/Microsoft.Compute.json#/resourceDefinitions/virtualMachine
更新
当您基于自定义映像(包括数据磁盘)创建 VM 时,您必须在自定义数据磁盘所在的同一存储帐户中创建整个 VM。截至今天 (2016-05-10),没有选项指示 ARM 跨存储帐户复制 VHD。
如果您想使用数据磁盘从自定义映像创建 VM,这就是全部。 如果您只想使用新的空数据磁盘创建 VM,则可以使用以下快速入门模板:
https://github.com/Azure/azure-quickstart-templates/tree/master/101-vm-multiple-data-disk
您只需定义所需的数据磁盘大小及其存储位置。
您遇到的问题是您将模板配置为复制图像,但没有指定图像。
您需要将 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')]"
}
}
],