terraform:根据资源计数创建列表
Posted
技术标签:
【中文标题】terraform:根据资源计数创建列表【英文标题】:terraform: create list based on resource count 【发布时间】:2018-11-13 12:18:02 【问题描述】:我们有一堆实例(我知道......牛,不是宠物,但在这种情况下,这些真的是宠物)
resource "aws_instance" "read_00"
count = "$var.read_00_count"
resource "aws_instance" "read_01"
count = "$var.read_01_count"
我们有一个 ELB,我们希望根据它们的计数变量动态添加实例,如下所示:
resource "aws_elb" "read_slaves"
instances = ["$aws_instance.read_.*.id"]
但这当然行不通。
只有当它们的计数不为零时,是否可以动态创建实例 ID 列表?
我知道这有悖常理,但如果这是可能的,那就太棒了。
【问题讨论】:
【参考方案1】:使用 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_intances
的列表
根据收集的数据创建aws_elb
【讨论】:
可能值得指出的是,这在第一次应用时不起作用,因为数据源找不到任何实例。以上是关于terraform:根据资源计数创建列表的主要内容,如果未能解决你的问题,请参考以下文章
在 aws_route53_record terraform 资源中使用“计数”