Не удается привести список объектов в for_each

#terraform #cisco

Вопрос:

Мне нужно повторить список значений из карты объектов в цикле for_each, но я, похоже, не могу получить необходимые данные в формате, необходимом для ресурса (строка). Я получаю недопустимые ошибки аргумента for_each: Данное значение аргумента «for_each» не подходит: аргумент «for_each» должен быть картой или набором строк, и вы указали значение типа кортеж. Однако мои местные жители предоставляют ожидаемые данные.

Как я могу преобразовать эти данные в то, что может принять for_each?

 > local.domain
[
  {
    "domain" = "NonProd_Compute-AEP-mktest"
    "epg" = "BTS_NonProd_Database_Svc_10.8.0.0-mktest"
  },
  {
    "domain" = "Prod_Compute-AEP-mktest"
    "epg" = "BTS_NonProd_Database_Svc_10.8.0.0-mktest"
  },
  {
    "domain" = "Prod_Network-PhyDom-mktest"
    "epg" = "BTS_NonProd_Database_Svc_10.8.0.0-mktest"
  },
]
 

блок ресурсов:

 locals {
  domains = toset(flatten([
    for epg, value in var.epgtodom_map : [
      for domain in value["domains"] : {
        epg    = epg
        domain = domain
      }
    ]
  ]))
}

resource "aci_epg_to_domain" "epgtodomLocalName" {
    for_each = local.domain
      application_epg_dn    = aci_application_epg.epgLocalName[each.value["epg"]].id
      tdn                   = "uni/phys-${each.value["domain"]}"
}
 

переменные:

 variable "epgtodom_map" {
    type        = map(object({
      domains     = set(string)  
    }))  
}
 

tfvars:

 epg_map = {
    "BTS_NonProd_Database_Svc_10.8.0.0-mktest" = {                     
        name_alias                  = "10.8.0.0_24_VL2000"
        ap_key                      = "NonProd-AP-mktest"
        bd_key                      = "BTS_NonProd_Database_Svc-mktest"
        description                 = ""
    }
}
 

Комментарии:

1. Что такое epgtodom_map ?