将地图转换为 terraform 列表 aws_autoscaling_group
convert map to list for terraform aws_autoscaling_group
我有以下子网 ID 映射作为要在 Terraform aws_autoscaling_group
资源中使用的变量:
subnet_ids = {
"us-east-1" = "subnet-123abc,subnet-456def,subnet-789ghi"
"us-west-2" = "subnet-1a2b3c,subnet-4c5d6e,subnet-7g8h9i"
}
变量为
variable subnet_ids {
description = "subnet ids"
type = "map"
}
但这不起作用,因为 Terraform 抱怨它需要一个列表但看到的是地图。
这只需要临时设置一个区域就可以了:
subnet_ids = ["subnet-123abc", "subnet-456def", "subnet-789ghi"]
变量为:
variable subnet_ids {
description = "subnet ids"
type = "list"
}
并通过 vpc_zone_identifier = "${var.subnet_ids}"
非常想要一种能够使用地图并能够根据所选区域传入列表的方法
谢谢
尝试使用 lookup
命令和一个变量来表示您的 region
从您的 map
:
中选择一个值
variable region {
description = "aws region"
default = "us-east-1"
}
...
vpc_zone_identifier = ["${lookup(var.subnet_ids, var.region)}"]
对于在 terraform 中遇到 security groups
自动缩放组资源问题的任何人,这就是将地图传递给列表的方式
这就是有效的方法
security_groups = ["${split(",",lookup(var.security_groups, var.aws_region))}"]
或者...
variable region {
description = "aws region"
default = "us-east-1"
}
...
vpc_zone_identifier = ["${var.subnet_ids["${var.region}"]}"]
我有以下子网 ID 映射作为要在 Terraform aws_autoscaling_group
资源中使用的变量:
subnet_ids = {
"us-east-1" = "subnet-123abc,subnet-456def,subnet-789ghi"
"us-west-2" = "subnet-1a2b3c,subnet-4c5d6e,subnet-7g8h9i"
}
变量为
variable subnet_ids {
description = "subnet ids"
type = "map"
}
但这不起作用,因为 Terraform 抱怨它需要一个列表但看到的是地图。
这只需要临时设置一个区域就可以了:
subnet_ids = ["subnet-123abc", "subnet-456def", "subnet-789ghi"]
变量为:
variable subnet_ids {
description = "subnet ids"
type = "list"
}
并通过 vpc_zone_identifier = "${var.subnet_ids}"
非常想要一种能够使用地图并能够根据所选区域传入列表的方法
谢谢
尝试使用 lookup
命令和一个变量来表示您的 region
从您的 map
:
variable region {
description = "aws region"
default = "us-east-1"
}
...
vpc_zone_identifier = ["${lookup(var.subnet_ids, var.region)}"]
对于在 terraform 中遇到 security groups
自动缩放组资源问题的任何人,这就是将地图传递给列表的方式
这就是有效的方法
security_groups = ["${split(",",lookup(var.security_groups, var.aws_region))}"]
或者...
variable region {
description = "aws region"
default = "us-east-1"
}
...
vpc_zone_identifier = ["${var.subnet_ids["${var.region}"]}"]