Creating an Azure VM from VHD failed "is not a valid resource reference"

Я пытаюсь развернуть виртуальную смарт-зону в Azure с помощью Terraform, но не смог добиться успеха много раз. Также я прочитал статью, существующую здесь. Не могли бы вы дать мне совет и исправить это? Большое спасибо.

Вот подробности:

tien$ terraform -v
Terraform v0.11.13
+ provider.azurerm v1.27.1
+ provider.random v2.1.2

Какую terraform версию я написал:

resource "azurerm_virtual_machine" "vsz_vm" {
  name                          = "vsz.az.example.com"
  location                      = "${var.location}"
  resource_group_name           = "${azurerm_resource_group.abc.name}"
  network_interface_ids         = ["${azurerm_network_interface.vsz_nic.id}"]
  vm_size                       = "Standard_D4_v3"

  storage_image_reference {
    id                          = "/subscriptions/4389d27e-249a-4f95-8bd6-3486c60945e7/resourceGroups/ABC/providers/Microsoft.Storage/storageAccounts/vszafb3c92c014b61ab/images/vscg-5.1.1.0.598.vhd"
  }

  storage_os_disk {
    name                        = "vszOsDisk"
    managed_disk_type           = "Premium_LRS"
    create_option               = "FromImage"
    os_type                     = "Linux"
  }

  os_profile {
    computer_name               = "vsz.az.example.com"
    admin_username              = "azure"
  }

  os_profile_linux_config {
    disable_password_authentication = true
    ssh_keys {
      path                      = "/home/azure/.ssh/authorized_keys"
      key_data                  = "${var.ssh_public_key}"
    }
  }

  tags {
    environment                 = "${var.environment}"
  }
}

затем я запустил команду terraform

tien$ terraform init --> OK
tien$ terraform plan --> OK
tien$ terraform apply --> ERROR

Какая проблема?

Error: Error applying plan:
1 error(s) occurred:
* module.azure_example_dlc.azurerm_virtual_machine.vsz_vm: 1 error(s) occurred:
* azurerm_virtual_machine.vsz_vm: compute.VirtualMachinesClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="BadRequest" Message="Id /subscriptions/4389d27e-249a-4f95-8bd6-3486c60945e7/resourceGroups/ABC/providers/Microsoft.Storage/storageAccounts/vszafb3c92c014b61ab/images/vscg-5.1.1.0.598.vhd is not a valid resource reference."

VHD файл vscg-5.1.1.0.598.vhd существует в контейнере "images" на Storage Account "vszafb3c92c014b61ab".

Также я создаю управляемый образ перед созданием VM из управляемого образа, как показано ниже:

  storage_image_reference {
    id                          = "/subscriptions/4389d27e-249a-4f95-8bd6-3486c60945e7/resourceGroups/ABC/providers/Microsoft.Storage/storageAccounts/vszafb3c92c014b61ab/images/vscg-5.1.1.0.598.vhd"
  }

  storage_os_disk {
    name                        = "vszOsDisk"
    managed_disk_type           = "Premium_LRS"
    create_option               = "FromImage"
    os_type                     = "Linux"
  }
2
задан 17 May 2019 в 03:15
1 ответ

Mál þetta var leyst. Slæmt mitt, ég valdi ranga nálgun.

  • notaði Managed Disk.
  • notaði Block blob

Hér er það sem ég gerði til að leysa:

  • Settu VHD myndina aftur inn á Page blob til að skipta um Block blob.
  • notaðu Unmanaged Disk. Af hverju?VHD ímynd verslanir mínar í Page blob. Þá er það stutt af sýndarhörðum diski af VM.

Athugasemd

  • Ég notaði til Azure Storage Explorer til að skipta um fyrir að hlaða inn VHD skránni. VHD 42 GB mætir oft vandamáli þegar það er hlaðið í gegnum Azure vefskoðara.

Azure Storage styður þrjár gerðir af blobs:

  • Block blob geymir texta og tvöföld gögn, allt að um 4,7 TB. Loka fyrir blob samanstendur af gagnablokkum sem hægt er að stjórna hver fyrir sig.
  • Bætið við blob er úr blokkum eins og block blobs, en eru bjartsýnir til að bæta við rekstri. Bæta við blob eru tilvalin fyrir aðstæður eins og að skrá gögn úr sýndarvél.
  • Blob geymir handahófi aðgang skrár allt að 8 TB að stærð. Page blob geymir sýndardiskinn (VHD) skrár þjóna sem diskar fyrir Azure sýndarvél.

Að lokum er þetta Terraform kóðinn minn

resource "azurerm_virtual_machine" "vsz_vm" {
  name                          = "vsz.az.example.com"
  location                      = "${var.location}"
  resource_group_name           = "${azurerm_resource_group.abc.name}"
  network_interface_ids         = ["${azurerm_network_interface.vsz_nic.id}"]
  vm_size                       = "Standard_D4_v3"


  storage_os_disk {
    name                        = "vszOsDisk"
    # source VHD as reference
    image_uri                   = "https://vszafb3.blob.core.windows.net/images/vscg-5.1.1.0.598.vhd"
    # destination VHD to create
    vhd_uri                     = "https://vszafb3.blob.core.windows.net/images/vscg-5.1.1.0.601.vhd"
    os_type                     = "Linux"
    create_option               = "FromImage"
  }

  os_profile {
    computer_name               = "vsz.az.example.com"
    admin_username              = "azure"
  }

  os_profile_linux_config {
    disable_password_authentication = true
    ssh_keys {
      path                      = "/home/azure/.ssh/authorized_keys"
      key_data                  = "${var.ssh_public_key}"
    }
  }

Þetta mál var leyst.

0
ответ дан 3 December 2019 в 13:41

Теги

Похожие вопросы