需要在terraform中将内联资源重构为单独的资源吗?

需要在terraform中将内联资源重构为单独的资源吗?,terraform,terraform-provider-openstack,Terraform,Terraform Provider Openstack,通常,我如何重构内联资源并使用单独的卷资源将其作为单独的资源移动到外部 例如,是否有一种方法可以重构一个block_设备并将其移动到openstack_compute_实例_v2之外,如下所示 resource "openstack_compute_instance_v2" "instance_sakani_front_end_x" { ... block_device { uuid = "" volume_size

通常,我如何重构内联资源并使用单独的卷资源将其作为单独的资源移动到外部

例如,是否有一种方法可以重构一个block_设备并将其移动到openstack_compute_实例_v2之外,如下所示

resource "openstack_compute_instance_v2" "instance_sakani_front_end_x" {
  ...
  block_device {
    uuid                  = ""
    volume_size           = 30
    boot_index            = 0
    destination_type      = "volume"
    delete_on_termination = true
  }
}

您可以将block_设备拉出到本地映射变量中

   resource "openstack_compute_instance_v2" "instance_sakani_front_end_x" {
      ...
      block_device {
        uuid                  = ""
        volume_size           = 30
        boot_index            = 0
        destination_type      = "volume"
        delete_on_termination = true
      }
    }
像这样

locals {
    my_block_device {
        volume_size           = 30
        boot_index            = 0
        destination_type      = "volume"
        delete_on_termination = true
    }
}   

resource "openstack_compute_instance_v2" "instance_sakani_front_end_x" {
  ...
  block_device = "${local.my_block_device}"
}

我需要的是通过重构将block_设备更改为openstack_compute_instance_v2资源,而不必删除卷并再次创建它。