3

コンピューティング インスタンスを作成する terraform モジュールを作成しようとしています。モジュールの呼び出し中に変数attached_disk_enabledが設定されている場合にのみ、リソースにディスクを接続したいと考えています。true私はこれを持っています:

resource "google_compute_disk" "my-disk" {
  name  = "data"
  type  = "pd-ssd"
  size  = 20
  count = var.attached_disks_enabled ? 1 : 0
}

resource "google_compute_instance" "computer" {
  name = "computer"

  boot_disk {
    ...
  }

  // How do I make this disappear if attached_disk_enabled == false?
  attached_disk {
    source      = "${google_compute_disk.my-disk.self_link}"
    device_name = "computer-disk"
    mode        = "READ_WRITE"
  }
}

のモジュールに対して変数が宣言されていますvars.tf。モジュールの呼び出しは次のようになります。

module "main" {
  source                = "../modules/computer"
  attached_disk_enabled = false
  ...
}

動的ブロックと、ループを使用してリストを反復処理し、複数のブロックを設定する方法については知っていますforが、この方法を使用してリソースからブロックを除外する方法がわかりません。

dynamic "attached-disk" {
  for_each in var.disk_list
  content {
    source      = "${google_compute_disk.my-disk.*.self_link}"
    device_name = "computer-disk-${count.index}"
    mode        = "READ_WRITE"
  }
}

ifの代わりに欲しいfor_each。これを行う方法はありますか?

$ terraform version
Terraform v0.12.0 
4

1 に答える 1