首页 > 解决方案 > 为循环创建的一个资源指定参数 - Terraform

问题描述

可以使用变量为使用计数循环创建的资源添加非默认参数吗?

例如:

resource "resource" "example" {
   count = length(var.resources)
   name = var.resources[count.index]
}

其中 var.resources 是:

["X", "Y", ...]

现在,我有必要为其中一个资源添加具体的论点。

Resource "Y" will need a specific argument like " description = example"

这是可能的?哪个是最好的选择?使用 for_each 代替 count 和 map var?

标签: amazon-web-servicesterraformterraform-provider-aws

解决方案


您可以将您的重新组织var.resources成地图:


variable "resources" {
  default = {
       "X" = {}
       "Y" = {description = "x description"}
  } 
}

然后:

resource "resource" "example" {
   for_each    = var.resources
   name        = each.key
   description = lookup(each.value, "description", null)
}

推荐阅读