如何有条件地在Terraform中定义AWS资源标签?

时间:2019-06-30 12:12:37

标签: tags terraform

我只想在某些环境中定义资源标签(例如,对于DynamoDB表),而不是全部。

我熟悉计数技巧:将计数设置为0,这样就不会创建资源。但这是资源中的一个字段。

tags {
    count = "${var.is_production == "T" ? 1 : 0}"
    MyProductionOnlyTag = "${var.prod_tag_value}"
}

1 个答案:

答案 0 :(得分:0)

有点黑,但是您可以使用动态块(需要terraform => 0.12):

dynamic "tags" {
  iterator = my_prod_tag_value
  for_each = "${var.my_prod_tag == null ? 0 : 1 }"
  content {
    MyProductionOnlyTag = "${my_prod_tag_value}"
  }
}

此外,在声明var.my_prod_tag时,必须明确允许其为空:

variable "my_prod_tag" {
    type = "string"
    default = null
}
相关问题