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



我想向我首先制作的服务器的输出结果添加不同的消息,以及我在第二个及以后制作的服务器并显示它。

我想做的是最终。

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

当前我的输出。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等。

您可以使用切片和元素插值(未测试(:

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则为列表。这应该给您您要寻找的东西。

相关内容

  • 没有找到相关文章

最新更新