组合两组 IP 以形成单个输出 Terraform
Combine two sets of IPs to form a single output Terraform
我有两个 Terraform 资源,每个资源创建多个 EC2(一个 Linux EC2,另一个 Windows),并且它们每个都有其 IP 的输出(这个用于 Linux, Windows 有 target_windows
而不是 target
):
output "target_ips" {
value = aws_instance.target.*.private_ip
}
我想将两个输出合并为一个输出,以便以后拥有线路时更容易访问。有人知道怎么做吗?
Terraform's setunion
function 可以将两个集合组合成一个包含两个集合中所有值的新集合:
output "target_ips" {
value = setunion(
aws_instance.target.*.private_ip,
aws_instance.target_windows.*.private_ip,
)
}
在这种情况下,根据定义,这两个输入中不能有共同的值,因为每个实例的 IP 地址都是唯一的,但为了完整起见,我会注意到由于集合的规则 setunion
结果将只包含每个唯一值一次,即使它出现在两个输入中也是如此。
我有两个 Terraform 资源,每个资源创建多个 EC2(一个 Linux EC2,另一个 Windows),并且它们每个都有其 IP 的输出(这个用于 Linux, Windows 有 target_windows
而不是 target
):
output "target_ips" {
value = aws_instance.target.*.private_ip
}
我想将两个输出合并为一个输出,以便以后拥有线路时更容易访问。有人知道怎么做吗?
Terraform's setunion
function 可以将两个集合组合成一个包含两个集合中所有值的新集合:
output "target_ips" {
value = setunion(
aws_instance.target.*.private_ip,
aws_instance.target_windows.*.private_ip,
)
}
在这种情况下,根据定义,这两个输入中不能有共同的值,因为每个实例的 IP 地址都是唯一的,但为了完整起见,我会注意到由于集合的规则 setunion
结果将只包含每个唯一值一次,即使它出现在两个输入中也是如此。