如何访问 Terraform 中的映射输出

How to access to a mapping output in Terraform

我在 tf 中有下一个任务:

resource "aws_eks_node_group" "managed_workers" {
  for_each = var.nodegroups[terraform.workspace]

  cluster_name    = aws_eks_cluster.cluster.name
  node_group_name = each.value.Name
  node_role_arn   = aws_iam_role.managed_workers.arn
  subnet_ids      = aws_subnet.private.*.id
  tags = merge(
      var.tags[terraform.workspace], {
      "k8s.io/cluster-autoscaler/enabled"             = "true"
      "k8s.io/cluster-autoscaler/${var.cluster_name}" = "owned"
      "type" = each.value.type
      "Name" = each.value.Name
      "ob"   = each.value.ob
      "platform" = each.value.platform
  })

这个任务的输出是这样的:

{
  "dev" = {
    "ami_type" = "AL2_x86_64"
    "arn" = "arn:aws:eks:eu-west-2:xxxxxxxxxxxxx"
    "capacity_type" = "ON_DEMAND"
    "cluster_name" = "EKS_Sps"
    "disk_size" = 20
    "force_update_version" = tobool(null)
    "id" = "EKS_Sps"
    "instance_types" = toset([
      "m5a.large",
    ])
    "labels" = tomap({
      "autoscalergroup" = "pool"
      "lifecycle" = "OnDemand"
    })
    "launch_template" = tolist([])
    "node_group_name" = "EKS-Node-Name
    "node_group_name_prefix" = ""
    "node_role_arn" = "arn:aws:iam::xxxx:role/EKS_Sps-node"
    "release_version" = "1.18.9-20210722"
    "tags" = tomap({
      "Name" = "EKS-nodegroup-name"
      "environment" = "dev"
      "k8s.io/cluster-autoscaler/EKS_Sps" = "owned"
      "k8s.io/cluster-autoscaler/enabled" = "true"
      "ob" = "all" <<<<----- I NEED THIS VARIABLE
      "platform" = "api"
      "type" = "EKS-TF-Sps"
    })
}

现在我需要从这样的新任务访问使用此资源任务输出的其他任务的 'ob' 值变量。会是这样的:each.value.tags(map).ob

非常感谢!

据我了解,我认为应该是这样:

resource "aws_autoscaling_group_tag" "example" {
  for_each = aws_eks_node_group.managed_workers

  #...
 
  tag {
    key   = "<some-key>"
    value = each.value.tags["ob"]
  }
}