获取项目包含子字符串 Terraform

Get item contains substring Terraform

我的代码中有以下变量:

variable "mylist" {
  default = ["cardigan.com", "crazy-apple.com", "blue-pen.com"]
}

在创建给定资源时,我必须根据子字符串传递此列表中的元素名称。例如,如何检索此列表中包含子字符串“apple”的元素?

collect/filter/map 族函数在 Terraform 中也不存在。因此,我们可以在列表构造函数中使用带有条件的 for 表达式 lambda:

[ for item in var.my_list : item if can(regex("apple", item)) ]

和这个 returns ["crazy-apple.com"] 作为您的示例变量值。然后,您可以访问其元素以 return 字符串,例如crazy-apple.com 正常。如果您使用 >= 0.15,并且非常有信心只存在一个匹配项,那么您也可以这样做:

one([ for item in var.my_list : item if can(regex("apple", item)) ])

直接returncrazy-apple.com.