首页 文章

如何确定terraform中aws_instance.main . * . public_ip中的数字

提问于
浏览
0

我想在我首先制作的服务器的输出结果和我第二次及以后制作的服务器上添加不同的消息,然后显示它 .

我想做的最后是如下 .

output
  ec2global_ips  [
    manager_ip is : xxx,
    node ip is: [xxx,xxx]
]

目前我的output.tf代码如下 .

output "ec2_global_ips" {
  value = ["${aws_instance.main.*.public_ip}"]
}

为此,我认为有必要判断某处 aws_instance.main.0.public_ipaws_instance.main.1.public_ip 并放入另一个值

有没有办法用terraform制作这样的东西? var.count函数无法在output.tf等中使用 .

1 回答

  • 1

    您可以使用切片和元素插值(未经测试的代码):

    output "ec2_global_ips" {
      value = "${
        map(
          "manager_ip", "${element(aws_instance.main.*.public_ip, 0)}"
          "node_ips", "${slice(aws_instance.main.*.public_ip, 1, length(aws_instance.main.*.public_ip))}"
        )
      }"
    }
    

    根据您所需的输出判断,您看起来正在寻找manager_ip作为字符串(因此是元素而不是它的切片)和node_ips作为列表 . 这应该会给你你想要的东西 .

相关问题