Terraform - Azure:附加现有磁盘 - 更改属性' dataDisk.name'不被允许

时间:2017-11-30 15:24:42

标签: azure apache-kafka azure-virtual-machine terraform terraform-provider-azure

环境:

Terraform v0.11.0
+ provider.azurerm v0.3.3
+ provider.tls v1.0.1

问题:

尝试在正在配置的VM上附加现有磁盘,因此会出现错误:

* azurerm_virtual_machine.kafka_vm: compute.VirtualMachinesClient#CreateOrUpdate: Failure responding to request: StatusCode=409 -- Original Error: autorest/azure: Service returned an error. Status=409 Code="PropertyChangeNotAllowed" Message="Changing property 'dataDisk.name' is not allowed."

以下是vm.tf

storage_data_disk {
    name            = "${var.env_short_name}-zookeeper-data01"
    managed_disk_id = "${var.kafka_data_image_id}"
    create_option   = "Attach"
    disk_size_gb  = "30"
    lun             = 5
  }

..其中managed_disk_id是使用现有磁盘的完整路径定义的变量(即$var.kafka_data_image_id)。例如:

kafka_data_image_id  = "/subscriptions/XXXXX-fcf3-4ec6-b598-XXXXXXXXXXXX/resourceGroups/TEST-Environment-test0001-rg/providers/Microsoft.Compute/disks/test1-kafka-data01"

我试图提供""这个名字,但是它错误地告诉我必须提供姓名。关于我做错了什么的指示?

谢谢!

2 个答案:

答案 0 :(得分:0)

只需从您的定义中删除name即可。

storage_data_disk {
    managed_disk_id = "${var.kafka_data_image_id}"
    create_option   = "Attach"
    disk_size_gb    = "30"
    lun             = 5
}

答案 1 :(得分:0)

回答我自己的问题:

我的错误是指定disk_size_gb大于原始版本(20GB)。结果,TF给了我(可能是代理Azure API的答案吗?),好像提供的名称是坏的。因此,只要提供了disk_size_gb匹配的现有磁盘大小,操作就应该成功(是的,磁盘名称保持不变)。