这是由于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做到这一点?我知道这种事情现在有更好的功能,因此我不再需要使用null资源,但是我找不到关于如何循环映射并生成新映射的任何0.12示例。
答案 0 :(得分:1)
我知道动态块,但是没有足够的考虑。这要容易得多。只能有一个列表var并在资源中直接使用动态块
dynamic "tag" {
for_each = var.mytags
content {
key = tag.key
value = tag.value
propagate_at_launch = true
}
}