Terraform 从托管磁盘创建 VM 问题

时间:2021-01-10 16:53:00

标签: azure terraform

我正在尝试从现有快照创建托管磁盘,然后从该磁盘创建 VM。

我在创建托管磁盘时收到错误。

这是我的代码。

主文件

resource "azurerm_managed_disk" "copy" {

  name = "myOsDisk1"
  location = "East US"
  resource_group_name = data.azurerm_resource_group.test.name
  storage_account_type = "Standard_LRS"
  create_option = "Copy"
  source_resource_id = var.snapshot_id
  disk_size_gb = "50"
}

resource "azurerm_virtual_machine" "myterraformvm" {

    name                  = "Test-01"
    location              = "East Us"
    resource_group_name = data.azurerm_resource_group.test.name
    network_interface_ids = ["${azurerm_network_interface.main.id}"]
    vm_size               = "Standard_DS1_v2"

    storage_os_disk {
    name              = "${azurerm_managed_disk.copy.name}"
    os_type           = "windows"
    managed_disk_id   = "${azurerm_managed_disk.copy.id}"
    create_option     = "Attach"
    }
}

下面是错误

<块引用>

错误:创建/更新托管磁盘“myOsDisk1”(资源组“vm-from-snap”)时出错:compute.DisksClient#CreateOrUpdate:发送请求失败:StatusCode=400 -- 原始错误:Code="InvalidParameter" 消息="实体不是预期类型" Target="sourceResourceId"

在 main.tf 第 44 行,在资源“azurerm_managed_disk”“copy”中: 44:资源“azurerm_managed_disk”“复制”{

1 个答案:

答案 0 :(得分:0)

根据错误信息,您可以验证您是否输入了正确的source_resource_id。变量快照可以像这样的格式进行贴标:

variable "snapshot_id" {
  default = "/subscriptions/<xxxsubIdxxx>/resourceGroups/<rgName>/providers/Microsoft.Compute/snapshots/<snapshotName>"

}

第 1 步:使用 Azure 门户创建快照,

enter image description here

第 2 步:将快照 ID 复制到上面的变量 snapshot_id

enter image description here 最后,我建议将 terraform 升级到最新版本或 0.12 以上。对我来说,一切都很顺利。

Terraform v0.14.4
+ provider registry.terraform.io/hashicorp/azurerm v2.43.0
相关问题