Как вы преобразуете карту в другую карту с Terraform 0,12? - PullRequest
0 голосов
/ 12 февраля 2020

Это из-за дурацкого поведения по умолчанию aws провайдера в отношении 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 примеров того, как l oop над картой и создать новую карту.

1 Ответ

1 голос
/ 12 февраля 2020

Я знал о динамических c блоках, но не думал об этом достаточно. Это намного проще, чем. Может просто иметь список var и использовать блок dynamici c прямо в ресурсе

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