我有这些输出:
output "ec2_id" {
value = aws_instance.ec2instance[*].id
}
output "ec2_name" {
value = aws_instance.ec2instance[*].tags["Name"]
}
output "ec2_mgmt_eip" {
value = aws_eip.eip_mgmt_ec2instance[*].public_ip
}
我想做一个输出像:
"<instanceName>: <instanceID> -> <publicIP>"
(同一ec2实例的同一行中的所有数据(。在任何非声明性语言中,我都可以使用类似CCD_;i〃;作为每个列表的索引,在每个索引中连接一个新的字符串,但在地形中我找不到如何做到这一点。
谢谢!
即使您在评论中得到了答案,我也会添加一个示例。所以,你想要的东西确实存在于地形中,因为它也有for
循环[1]。for
循环和正确的语法将为您提供所需的输出,这是一个地形图:
output "ec2_map" {
value = { for i in aws_instance.ec2instance: i.tags.Name => "${i.id}:${i.public_ip}" }
}
你说你想要的输出与此非常相似。此外,不存在";同一行";地形。在这种情况下,由于这是一个映射,所以键将是实例名称,值将是实例id和公共IP的组合,但这将是一个字符串。
[1]https://www.terraform.io/language/expressions/for