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

如何在Terraform中移除匹配指定键列表的映射元素?

Terraform 移除映射中匹配指定键列表的元素

要实现从Terraform映射中移除指定键列表对应的元素,比如移除示例中的key_b和key_c,可以通过for表达式结合contains函数完成,具体实现如下:

输入示例

map = {
  key_a = value_a,
  key_b = value_b,
  key_c = value_c,
  key_m = value_m
}

期望输出

filtered_map = {
  key_a = value_a,
  key_m = value_m
}

正确实现代码

假设你已定义两个变量:var.map为原始映射,var.exclude为需要排除的键列表(比如["key_b", "key_c"]),正确的过滤逻辑如下:

output "filtered_map" {
  value = { for k, v in var.map : k => v if !contains(var.exclude, k) }
}

错误分析

你之前的代码逻辑存在偏差:

output "test" {
  value = { for k, v in var.map: k => v if ! contains(values(v), var.exclude) }
}

这里的values(v)是提取当前值v的元素列表(仅当v为复杂类型时有效),但我们需要判断的是键k是否存在于排除列表中,而非值是否包含排除列表。正确用法是将排除列表作为contains的第一个参数,当前键作为第二个参数,取反后即可过滤掉指定键对应的元素。

内容的提问来源于stack exchange,提问作者mo farah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:15:33