Issue with lookup() in a nested for loop

Hello,

In my local variable called instance_groups, I’m trying to do a lookup of a resource output "resource google_container_node_pool" "this" I’m passing the output directly as it is which is a map. For some reason is throwing me the below error.
I tried google_container_node_pool.this[each.key].managed_instance_group_urls as suggested but it doesn’t work since I don’t have a for_each in my nested for loop.

I also tried this group = lookup(google_container_node_pool.this[value.name].managed_instance_group_urls, value.name, null) but didn’t work.
Does anybody know how to deal with lookup when having two for loops and getting and passing a resource output in a form of map?

Thanks,

Locals:

locals {
  instance_groups = flatten([
    for key, value in var.node_pools : [
      for i, j in value.instance_named_ports : {
        zone = value.location
        name = j.name
        port = j.port
        node_pool_name = value.name
        group = lookup(google_container_node_pool.this.managed_instance_group_urls, value.name, null)
      }
    ]
  ])
}

Var file:

variable "node_pools" {
  type = map(object({
    name                 = string
    cluster_name         = string
    location             = string
    node_config          = object({
      machine_type       = string
      image_type         = string
      labels             = map(string)
      oauth_scopes       = list(string)
      taint              = list(map(string))
      tags               = list(string)
    })
    autoscaling          = object({
      min_node_count     = number
      max_node_count     = number
    })
    management           = object({
      auto_repair        = bool
      auto_upgrade       = bool
    })
    upgrade_settings     = object({
      max_surge          = number
      max_unavailable    = number
    })
    instance_named_ports = map(object({
      name               = string
      port               = number
    }))
  }))
}

Resource:

resource "google_container_node_pool" "this" {
  for_each = var.node_pools //== null ? {} : var.node_pools
  name = each.value.name
  location = each.value.location
  cluster = each.value.cluster_name != null ? each.value.cluster_name : google_container_cluster.this[0].id
  node_config {
    machine_type = each.value.node_config.machine_type
    image_type = each.value.node_config.image_type
    labels = each.value.node_config.labels
    oauth_scopes = each.value.node_config.oauth_scopes
    tags = each.value.node_config.tags
    dynamic "taint" {
      iterator = rule
      for_each = each.value.node_config.taint
      content {
        key = rule.value["key"]
        value = rule.value["value"]
        effect = rule.value["effect"]
      }
    }
  }

  autoscaling {
    min_node_count = each.value.autoscaling.min_node_count
    max_node_count = each.value.autoscaling.max_node_count
  }

  management {
    auto_repair = each.value.management.auto_repair
    auto_upgrade = each.value.management.auto_upgrade
  }

  upgrade_settings {
    max_surge = each.value.upgrade_settings.max_surge
    max_unavailable = each.value.upgrade_settings.max_unavailable
  }
}

Output:

output "managed_instance_group_urls" {
  value = {
    for url in google_container_node_pool.this:
        url.name => flatten(url.*.managed_instance_group_urls)
  }
}

Error:

│ Error: Missing resource instance key
│
│   on ../nodepool.tf line 9, in locals:
│    9:         group = lookup(google_container_node_pool.this.managed_instance_group_urls, value.name, null)
│
│ Because google_container_node_pool.this has "for_each" set, its attributes must be accessed on specific instances.
│
│ For example, to correlate with indices of a referring resource, use:
│     google_container_node_pool.this[each.key]```

Example of google_container_node_pool.this.managed_instance_group_urls Output

managed_instance_group_urls = {
  "pool-1" = [
    "https://www.googleapis.com/compute/v1/projects/xxxxxxxx/zones/us-central1-a/instanceGroups/gke-xxxxxxx",
  ]
  "pool-2" = [
    "https://www.googleapis.com/compute/v1/projects/xxxxxxxx/zones/us-central1-a/instanceGroups/gke-zzzzzz",
  ]
  "pool-3" = [
    "https://www.googleapis.com/compute/v1/projects/xxxxxxxx/zones/us-central1-a/instanceGroups/gke-yyyyyy",
  ]

}

Desired result:

[
  {
    "group" = [
      "https://www.googleapis.com/compute/v1/projects/xxxxxxxx/zones/us-central1-a/instanceGroups/gke-xxxxxxx",
    ]
    "name" = "https"
    "node_pool_name" = "pool-1"
    "port" = 31313
    "zone" = "us-west1"
  },
  {
    "group" = [
      "https://www.googleapis.com/compute/v1/projects/xxxxxxxx/zones/us-central1-a/instanceGroups/gke-zzzzzz",
    ]
    "name" = "http"
    "node_pool_name" = "pool-2"
    "port" = 80
    "zone" = "us-west1"
  },
  {
    "group" = [
      "https://www.googleapis.com/compute/v1/projects/xxxxxxxx/zones/us-central1-a/instanceGroups/gke-yyyyyy",
    ]
    "name" = "https"
    "node_pool_name" = "pool-3"
    "port" = 31313
    "zone" = "us-west1"
  },
]

Sorry for the hassle. I found my error.
group = lookup(google_container_node_pool.this[value.name], "managed_instance_group_urls", null)