【问题标题】:Combine two sets of IPs to form a single output Terraform组合两组 IP 以形成单个输出 Terraform
【发布时间】:2021-03-13 13:55:16
【问题描述】:

我有两个 Terraform 资源,每个资源创建多个 EC2(一个 Linux EC2,另一个 Windows),它们每个都有其 IP 的输出(这个用于 Linux,Windows 有 target_windows 而不是 target):

output "target_ips" {
  value = aws_instance.target.*.private_ip
}

我想将这两个输出组合成一个输出,以便以后访问拥有该线路。有人知道怎么做吗?

【问题讨论】:

标签: terraform terraform-provider-aws


【解决方案1】:

Terraform's setunion function 可以将两个集合组合成一个包含两个集合中所有值的新集合:

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

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

【讨论】:

    猜你喜欢
    • 2012-03-04
    • 1970-01-01
    • 2019-08-11
    • 2017-08-13
    • 2021-07-04
    • 2019-10-25
    • 2021-08-17
    • 2011-03-14
    • 2017-08-28
    相关资源
    最近更新 更多