首页 > 解决方案 > 如何使用 terraform 0.12 将地图转换为另一张地图?

问题描述

这是由于 aws 提供程序 wrt ASG 的糟糕默认行为

我不得不这样做: https ://github.com/hashicorp/terraform/issues/15226

data "null_data_source" "asg-tags" {
  count = "${length(keys(var.tags))}"
  inputs = {
    key                 = "${element(keys(var.tags), count.index)}"
    value               = "${element(values(var.tags), count.index)}"
    propagate_at_launch = "true"
  }
}

resource "aws_autoscaling_group" "my-group" {
  ....
  tags = ["${data.null_data_source.asg-tags.*.outputs}"]

我如何用 0.12 做到这一点?我知道现在这类事情有更好的功能,所以我不应该再使用空资源,但我找不到任何 0.12 示例来说明如何遍历地图并生成新地图。

标签: terraform

解决方案


我知道动态块,但考虑得不够多。这要容易得多。可以只有一个列表变量并在资源中使用动态块

  dynamic "tag" {
    for_each = var.mytags
    content {
      key = tag.key
      value = tag.value
      propagate_at_launch = true
    }
  }

推荐阅读