簡體   English   中英

從 for_each 中訪問模塊(避免循環)

[英]Accessing the module from within for_each(avoiding cycle)

我正在使用 for_each 循環創建模塊。 我想從模塊塊中訪問前一個模塊以獲取變量,但由於循環,它阻止了我這樣做。

locals{
  deployment_plan = ["a", "b", "c"]
}
module "tier" {
  source = "./modules/deployment"
  for_each = { for tier,data in local.tier_config : tier => data }
  tier_cfg = each.value
  predecessors = [module.tier[local.deployment_plan[index(local.deployment_plan, each.key) - 1]].last_release_phase] : []
}

我在循環訪問模塊時為模塊分配前任時看到錯誤。 雖然我想訪問上一個模塊。

在創建module.tier之前,您無法訪問它。 因此你得到錯誤。 在您的情況下,您必須為每個deployment_plan創建 3 個模塊:

locals{
  deployment_plan = ["a", "b", "c"]
}
module "tier_a" {
  source = "./modules/deployment"
  for_each = { for tier,data in local.tier_config : tier => data }
  tier_cfg = each.value
  predecessors = []
}

module "tier_b" {
  source = "./modules/deployment"
  for_each = { for tier,data in local.tier_config : tier => data }
  tier_cfg = each.value
  predecessors = [module.tier_a.last_release_phase]
}

module "tier_c" {
  source = "./modules/deployment"
  for_each = { for tier,data in local.tier_config : tier => data }
  tier_cfg = each.value
  predecessors = [module.tier_b.last_release_phase]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM