通过计数生成的几个资源的Terraform输出



我有这些输出:

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

相关内容

  • 没有找到相关文章

最新更新