将地图转换为具有Terraform中新属性的地图列表

时间:2019-04-17 16:28:00

标签: dictionary tags terraform

我有一个用于不同资源的标签列表:

common_tags = {
    Application = "${var.application}"
    Environment = "${var.environment}"
}

我添加了一个aws_autoscaling_group,其中还可以提供标签,但是所需的结构不同,必须以这种方式定义:

tags = [{
    key                 = "explicit1"
    value               = "value1"
    propagate_at_launch = true
}]

我需要将标签的地图转换为具有新结构的地图列表。

现在我这样做:

variable "application" {
  default = "MyApplication"
}

variable "environment" {
  default = "production"
}

locals {
  common_tags = {
    Application = "${var.application}"
    Environment = "${var.environment}"
  }

  my_service_tags = "${list(
               map("key", "Name", "value", "my_service_tags-${var.environment}", "propagate_at_launch", true), 
               map("key", "Application", "value", var.application, "propagate_at_launch", true),
               map("key", "Environment", "value", var.environment, "propagate_at_launch", true))}"
}

如您所见,标签被定义了两次。

是否可以使用上一个结构(common_tags)来定义新结构(my_service_tags)?

谢谢。

0 个答案:

没有答案