获取包含子字符串 Terraform 的项目

Jes*_*ica 1 terraform

我的代码中有以下变量:

variable "mylist" {
  default = ["cardigan.com", "crazy-apple.com", "blue-pen.com"]
}
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*ard 6

Terraform 中还不存在收集/过滤/地图系列功能。for因此,我们可以在列表构造函数中使用带有条件的 lambda 表达式:

[ for item in var.my_list : item if can(regex("apple", item)) ]
Run Code Online (Sandbox Code Playgroud)

这将返回["crazy-apple.com"]您的示例变量值。然后您可以访问其元素以返回字符串,例如crazy-apple.com按照正常情况。如果您使用 >= 0.15,并且非常有信心只存在一场比赛,那么您也可以这样做:

one([ for item in var.my_list : item if can(regex("apple", item)) ])
Run Code Online (Sandbox Code Playgroud)

直接返回crazy-apple.com