具有复杂变量的 Terraform local-exec 命令

Ber*_*las 2 terraform

我需要迭代本地执行提供程序中的变量列表。那可能吗?

变量.tf:

variable "items" {
  default = []
}
Run Code Online (Sandbox Code Playgroud)

主要.tf:

resource "null_resource" "loop_list" {
  provisioner "local-exec" {
    interpreter = ["/bin/bash", "-c"]
    command = <<EOF
      for i in ${join(' ', var.items)}
        print $i
      done
EOF
  }
}
Run Code Online (Sandbox Code Playgroud)

The*_*erk 5

您应该能够使用环境。像这样的东西:

variable "items" {
  default = ["item1", "item2"]
}

resource "null_resource" "loop_list" {
  provisioner "local-exec" {
    command     = "for item in $ITEMS; do echo $item >> test-file; done"
    environment = { ITEMS = join(" ", var.items) }
  }
}
Run Code Online (Sandbox Code Playgroud)

地点terraform applycat test-file产量:

item1
item2
Run Code Online (Sandbox Code Playgroud)