Terraform 如果地形图中的条件和要基于关键字索引的对象

Terraform 如果地形图中的条件和要基于关键字索引的对象,terraform,terraform0.12+,Terraform,Terraform0.12+,我有一个奇怪的情况,如下所示 变量声明为: variable "subnet_info" { type = map(object({vpc_name=string, subnet_name=string, subnet_ip_range=string, region=string})) default = { abc = { vpc_name = "abc" subnet_name = "abc" subnet_ip_ra

我有一个奇怪的情况,如下所示

变量声明为:

variable "subnet_info" {
type = map(object({vpc_name=string, subnet_name=string, subnet_ip_range=string, region=string}))
default = {
 abc = {
  vpc_name = "abc"
  subnet_name = "abc"
  subnet_ip_range = ""
  region = "europe-west3"
    }
 bcd = {
  vpc_name = "bcd"
  subnet_name = "bcd"
  subnet_ip_range = ""
  region = "europe-west3"
    }
  }
 }
我已经声明了如下模块

module "abc" {
  source = "./modular_approach/modules/general_network/"
  for_each = var.subnet_info
  individual_vpc_name = each.value
  individual_subnet_name = each.value
 }
我想从变量subnet_info传递vpc和subnet的值。问题是这个变量中有很多值。如果我运行for_each,我想在模块中设置条件,如果键为“abc”,则访问内部(键、值)以其他方式跳过。这在地形中可能吗


提前谢谢

如果您真的希望这样过滤,以下构造应该可以:

for_each = {for k,v in var.subnet_info: k=>v if k == "abc"}

为什么不直接将
abc
对象传递到模块中,而不是将所有不相关的网络传递到模块中呢?完全一样。用于查找,谢谢你的回答@Marcin。我如何使用lookup(lookup())@dumb_编码器感谢您让我知道。是的,不知怎的,我忘记了查找。不管怎样,很高兴这两种方法都奏效了:-)