【问题标题】:terraform: create list based on resource countterraform:根据资源计数创建列表
【发布时间】: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 列表?

我知道这有悖常理,但如果这是可能的,那就太棒了。

【问题讨论】:

    标签: terraform


    【解决方案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

    【讨论】:

    • 可能值得指出的是,这在第一次应用时不起作用,因为数据源找不到任何实例。
    猜你喜欢
    • 2017-12-09
    • 2020-06-02
    • 2022-08-14
    • 2020-12-26
    • 2020-11-07
    • 1970-01-01
    • 2018-09-27
    • 2021-01-21
    • 2021-05-22
    相关资源
    最近更新 更多