如何循环自定义模块

时间:2019-11-20 09:53:49

标签: terraform

我有一个main.tf自定义TF模块,该模块将部署另一个自定义模块的列表。我可以通过将单个值传递给main.tf来部署单个区域,但是当我尝试传递多个区域并在main.tf的自定义模块中循环时尝试多区域。它不起作用。

main.tf

locals {
  regions = ["asia-east2", "asia-southeast1"]
}

module "main" {
  source = "./modules/main"
  for_each = local.regions
  region = each.value
}

错误:

  

名称“ for_each”保留供将来的Terraform版本使用。`

注释

我知道Terraform 0.12不支持此功能。有没有一种方法可以遍历多区域而不会传递到子模块的资源级别

1 个答案:

答案 0 :(得分:0)

<块引用>

我知道 Terraform 0.12 不支持此功能。有没有办法遍历多区域而不传递到子模块的资源级别?

没有。无法循环遍历 local.regions 并将它们传递到 Terraform 0.12 中的模块中,因为模块的 countfor_each 是在 Terraform 0.13 中添加的。

您唯一的选择是多次引用。

locals {
  regions = ["asia-east2", "asia-southeast1"]
}

module "main_0" {
  source = "./modules/main"
  region = local.regions[0]
}

module "main_1" {
  source = "./modules/main"
  region = local.regions[1]
}