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 等。

4

1 回答 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 是一个列表。这应该给你你正在寻找的东西。

于 2018-02-21T16:35:51.953 回答