terraform:基于资源计数创建列表
我们有很多例子(我知道……牛,不是宠物,但在这种情况下,它们真的是宠物) 我们有一个ELB,我们希望根据实例的计数变量动态添加实例,如下所示:terraform:基于资源计数创建列表,terraform,Terraform,我们有很多例子(我知道……牛,不是宠物,但在这种情况下,它们真的是宠物) 我们有一个ELB,我们希望根据实例的计数变量动态添加实例,如下所示: resource "aws_elb" "read_slaves" { instances = ["${aws_instance.read_.*.id}"] 当然,这是行不通的 只有当实例ID的计数不为零时,才可以动态创建实例ID列表吗 我知道这有悖常理,但如果这是可能的话,那就太棒了。对于Terraform 0.12来说,这会容易得多,但现在类似的
resource "aws_elb" "read_slaves" {
instances = ["${aws_instance.read_.*.id}"]
当然,这是行不通的
只有当实例ID的计数不为零时,才可以动态创建实例ID列表吗
我知道这有悖常理,但如果这是可能的话,那就太棒了。对于Terraform 0.12来说,这会容易得多,但现在类似的东西可以:
[...]
resource "aws_instance" "read_01" {
[...]
count = "${var.read_01_count}"
tags {
Role = "read_slave"
}
}
data "aws_instances" "read-slaves" {
instance_tags {
Role = "read_slave"
}
// optional filters
}
resource "aws_elb" "read_slaves" {
instances = ["${data.aws_instances.read-slaves.ids}"]
listener {
...
}
}
因此:
- 标记每个充当读从属的实例
- 收集
aws\u进口清单
- 根据收集的数据创建aws_elb
[...]
resource "aws_instance" "read_01" {
[...]
count = "${var.read_01_count}"
tags {
Role = "read_slave"
}
}
data "aws_instances" "read-slaves" {
instance_tags {
Role = "read_slave"
}
// optional filters
}
resource "aws_elb" "read_slaves" {
instances = ["${data.aws_instances.read-slaves.ids}"]
listener {
...
}
}