根据变量生成字符串列表

lig*_*ght 2 terraform

可以说我有一些terraform瓦尔:variable "cluster" {}variable "kfkcount" {}

并让说cluster=testkfkcount=3

如何使用terraform将其转换为如下所示的列表?

["test1.c.com", "test2.c.com", "test3.c.com"]

小智 5

这应该做您想要的:

variable "cluster" {}

variable "kfkcount" {}

data "template_file" "test" {
  template = "$${cluster}$${index}.c.com"
  count    = "${var.kfkcount}"

  vars = {
    index   = "${count.index + 1}"
    cluster = "${var.cluster}"
  }
}

output "list" {
  value = "${data.template_file.test.*.rendered}"
}
Run Code Online (Sandbox Code Playgroud)

使用template_file资源有点麻烦,但是它将根据需要返回列表:

$ terraform apply
var.cluster
  Enter a value: test

var.kfkcount
  Enter a value: 3

data.template_file.test[0]: Refreshing state...
data.template_file.test[1]: Refreshing state...
data.template_file.test[2]: Refreshing state...

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Outputs:

list = [
    test1.c.com,
    test2.c.com,
    test3.c.com
]
Run Code Online (Sandbox Code Playgroud)