如何正确访问Terraform中aws_eks_node_group资源的输出属性
问题原因
你无法正确取值的核心原因是资源结构中resources和autoscaling_groups两个字段都是列表类型,不能直接访问内部属性,必须先指定索引取出列表元素。
从你提供的aws_eks_node_group输出结构可以明确:
resources是仅包含1个元素的列表,第一个元素就是包含ASG信息的对象- 该对象内的
autoscaling_groups同样是仅包含1个元素的列表,第一个元素就是你要取的ASG对象
正确引用写法
resource "aws_autoscaling_group_tag" "nodetags" { for_each = aws_eks_node_group.managed_workers autoscaling_group_name = each.value.resources[0].autoscaling_groups[0].name # 其余原有配置保持不变 }
如果需要兼容极端情况下列表为空的报错,可以加try函数做容错处理:
autoscaling_group_name = try(each.value.resources[0].autoscaling_groups[0].name, "")
内容的提问来源于stack exchange,提问作者hache cheche
相关产品推荐
相关产品推荐

