Terraform 组合两组IP以形成单个输出地形

Terraform 组合两组IP以形成单个输出地形,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我有两个Terraform资源,每个都创建了几个EC2(一个Linux EC2,另一个Windows),它们都有各自IP的输出(这一个用于Linux,Windows有target\u Windows,而不是target): 我想将两个输出合并为一个输出,以便以后更容易访问我的线路。任何人都知道如何做到这一点?可以将两个集合合并成一个新集合,其中包含两个集合中的所有值: output "target_ips" { value = setunion( aws_inst

我有两个Terraform资源,每个都创建了几个EC2(一个Linux EC2,另一个Windows),它们都有各自IP的输出(这一个用于Linux,Windows有
target\u Windows
,而不是
target
):

我想将两个输出合并为一个输出,以便以后更容易访问我的线路。任何人都知道如何做到这一点?

可以将两个集合合并成一个新集合,其中包含两个集合中的所有值:

output "target_ips" {
  value = setunion(
    aws_instance.target.*.private_ip,
    aws_instance.target_windows.*.private_ip,
  )
}

在这种情况下,根据定义,这两个输入中不可能有公共值,因为每个实例的IP地址都是唯一的,但为了完整性,我将注意到,由于集合的规则,
setunion
结果将只包含每个唯一值一次,即使它出现在两个输入中。

可能有一种方法是
localexec
写入公共文件?看看这里的这个例子
output "target_ips" {
  value = setunion(
    aws_instance.target.*.private_ip,
    aws_instance.target_windows.*.private_ip,
  )
}