Terraform foreach多个地图变量

Terraform foreach多个地图变量,terraform,Terraform,我需要在Terraform中执行以下操作,但无法确定如何执行 这是我的 local { app_config = { test-web = { name = "test-web-${local.environment}" websockets = false subnet = "backend" audience_subnet = "fron

我需要在Terraform中执行以下操作,但无法确定如何执行

这是我的

local {
app_config = {
    test-web = {
      name            = "test-web-${local.environment}"
      websockets      = false
      subnet          = "backend"
      audience_subnet = "frontend"
      url             = "https://test-web-${local.environment}.mydomain.com"
    }
    test-api  = {
      name            = "test-api-${local.environment}"
      websockets      = false
      subnet          = "backend"
      audience_subnet = "frontend"
      url             = "https://test-api-${local.environment}.mydomain.com"
    }
  }


keyvault_secrets = {
    aat = {
        test-api = {
            application_id = "1111"
            client_id = "2222"
            administrator_pass = "3333"
        }
        test-web = {
            application_id = "4444"
            client_id = "5555"
            administrator_pass = "6666"
        }
    }
    Demo = {
        test-api = {
            application_id = "1212"
            client_id = "2323"
            administrator_pass = "3434"
        }
        test-web = {
            application_id = "4545"
            client_id = "5656"
            administrator_pass = "6767"
        }
    }
    Dev = {
        test-api = {
            application_id = "9999"
            client_id = "8888"
            administrator_pass = "7777"
        }
        test-web = {
            application_id = "9898"
            client_id = "8787"
            administrator_pass = "7676"
        }
    }
}

resource "azurerm_key_vault_secret" "app_id" {
  for_each = var.apps_config

  name         = var.apps_config
  value        = each.value.application_id
  key_vault_id = data.azurerm_key_vault.mykv.id
}

resource "azurerm_key_vault_secret" "client_id" {
  for_each = var.apps_config

  name         = var.apps_config
  value        = each.value.client_id
  key_vault_id = data.azurerm_key_vault.mykv.id
}

resource "azurerm_key_vault_secret" "admin_pass" {
  for_each = var.apps_config

  name         = var.apps_config
  value        = each.value.administrator_pass
  key_vault_id = data.azurerm_key_vault.mykv.id
}
我无法理解的是您如何执行以下操作: 对于定义的每个应用程序配置,例如: 测试网 测试api

密钥库机密由运行时定义的环境创建:

地形规划或应用-var=“environment=dev”


我想让它为每个应用程序配置创建3个秘密

你需要重新构造你的
本地
,这样每个
app\u配置
都有一个长度为3的
keyvault\u秘密
嵌套映射。然后,您可以使用这里描述的通用设计模式轻松地迭代资源:您需要重新构造
本地
,以便每个
app\u config
都有一个长度为三的
keybault\u secrets
嵌套映射。然后,您可以使用下面描述的通用设计模式轻松地迭代资源: