首页 > 解决方案 > Terraform,将用户输入变量转换为类型列表

问题描述

在 Terraform 中,我希望用户输入变量(类型列表)的值,而不必过多担心列表变量的语法。例如,Terraform 需要以下列表语法:

Enter value: ["value1", "value2", "value3"]

如果用户只需要输入一个逗号分隔的列表而不必担心添加引号和括号,那就太好了。例如:

Enter value: value1, value2, value3

从逗号分隔的字符串中,我想将其转换为具有正确语法的类型列表。

我当前的代码看起来像这样,我认为我什至还没有弄清楚。任何帮助表示赞赏!

variable "subnetNames" {
   description = "Enter value:"
   default     = "value1, value2, value3"
}


output "test" {
  value = "${join(",", list("[", var.subnetNames, "]"))}"
}

标签: terraform

解决方案


您想使用该split功能。

variable "subnetNames" {
  default     = "value1,value2,value3"
}

output "test" {
  value = "${split(",", var.subnetNames)}"
}
$ terraform init && terraform apply

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

Outputs:

test = [
    value1,
    value2,
    value3
]

推荐阅读