Terraform:将对象列表转换为对象中单个元素的列表

时间:2020-07-10 14:26:02

标签: terraform

我有一个来自Terraform变量的对象列表

variable "persons" {
  type = list(object({
    name = string,
    phonenumber = string,
    tshirtSize = string
  }))
    description = "List of person"
}

现在我想要一个人的名字列表,以便可以使用它来定义AWS资源

如何将该对象列表转换为名称列表 ["bob", "amy", "jane"]

我使用的是Terraform 0.12.24,但可以根据需要进行升级

1 个答案:

答案 0 :(得分:2)

更新后的答案
使用splat表达式

var.persons[*].name

https://www.terraform.io/docs/configuration/expressions.html#splat-expressions

原始答案:
我能够在本地文件中做到这一点

locals {
  names = [
    for person in var.persons:
    person.name
  ]
}

其他阅读 查看:https://www.hashicorp.com/blog/hashicorp-terraform-0-12-preview-for-and-for-each/