You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Terraform中为属于另一列表的列表元素创建资源

Terraform 筛选列表交集并输出/创建资源

给定变量定义:

variable names {
  default   = ["vk", "sb", "vc", "ss"]
}

variable subnames {
  default   = ["vk", "sb"]
}

要实现从names中筛选出同时属于subnames的元素,并输出结果或创建对应资源,可按以下方式编写代码:

1. 计算列表交集

使用Terraform内置的setintersection函数获取两个列表的交集,将结果存储为本地值:

locals {
  matched_names = setintersection(var.names, var.subnames)
}

2. 输出符合条件的元素

通过输出块打印筛选后的结果:

output "matched_names" {
  value = local.matched_names
}

执行terraform apply后,输出结果会显示:

matched_names = toset([
  "sb",
  "vk",
])

3. 基于匹配元素创建资源

如果要为每个匹配的元素创建资源,以null_resource为例:

resource "null_resource" "example" {
  for_each = local.matched_names

  provisioner "local-exec" {
    command = "echo 正在为元素 ${each.key} 创建资源"
  }
}

这段代码会为vk和sb分别创建一个null_resource实例,并在执行时打印对应提示。

内容的提问来源于stack exchange,提问作者Vinit Khandelwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 10:09:56