如何在Terraform中访问aws_eks_node_group映射输出的ob字段值
正确引用方式
你声明的aws_eks_node_group.managed_workers是通过for_each创建的多实例资源,每个实例的tags属性本身就是map结构,可根据使用场景选择对应写法:
如果新资源也使用
for_each = var.nodegroups[terraform.workspace]遍历同一节点组集合,引用写法为:aws_eks_node_group.managed_workers[each.key].tags.ob也可以用方括号语法取值,适合标签名包含特殊字符的场景:
aws_eks_node_group.managed_workers[each.key].tags["ob"]如果需要单独取指定key的节点组的ob值,比如示例中key为
dev的节点组,写法为:aws_eks_node_group.managed_workers["dev"].tags.ob
使用示例
以下是在新资源中引用的完整示例:
resource "aws_xxxx" "your_new_resource" { for_each = var.nodegroups[terraform.workspace] # 其他资源参数 ob_value = aws_eks_node_group.managed_workers[each.key].tags.ob }
注:你预想的
each.value.tags(map).ob写法错误,因为each.value只在当前资源块声明了for_each时,指代当前块遍历的元素,要引用eks节点组资源的属性,必须先指定资源的寻址路径,再取对应属性值。
内容的提问来源于stack exchange,提问作者hache cheche
相关产品推荐
相关产品推荐

