【发布时间】:2019-04-11 09:44:48
【问题描述】:
我目前有一些看起来像这样的 terraform:
resource "aws_autoscaling_group" "my_asg" {
...
tag {
key = "ManagedBy"
value = "Terraform"
propagate_at_launch = true
}
}
问题是这个代码块非常大,而且很多标签在多个 ASG 中是通用的,所以为了尝试将其缩小到更易于管理并减少重复,我想用通用标签做这样的事情:
resource "aws_autoscaling_group" "my_asg" {
...
tag = "${var.managed_by_tag}"
}
variable "managed_by_tag" {
type = "map"
default = {
key = "ManagedBy"
value = "Terraform"
propagate_at_launch = true
}
}
不幸的是,当我对此运行 terraform apply 时,我收到以下错误:
Error: Error loading C:\path\to\file.tf: Error reading config for aws_autoscaling_group[my_asg]: At 32:9: unknown slice type: *ast.LiteralType
从错误来看,问题似乎在于它试图将错误类型的东西 - 在本例中为地图 - 放在不属于它的地方。但是我感到困惑的是,以下内容可以正常工作,并且暗示(至少对我作为 terraform noob 的我而言)地图在这里应该没问题:
resource "aws_autoscaling_group" "my_asg" {
...
tag = {
key = "ManagedBy"
value = "Terraform"
propagate_at_launch = true
}
}
所以我的问题是:
- 有没有办法将这些标签提取到变量中?
- 为什么我上面的方法不起作用?
【问题讨论】:
标签: terraform terraform-provider-aws