我可以在一个输出变量中暴露所有 Terraform 资源的属性吗?

7
我需要为 Terraform 模块中的特定资源公开所有属性,并将其放入单个输出变量。
这在 Terraform 中可行吗?

你的意思是要将所有资源属性连接成单个属性吗?还是说你想要构建一个包含所有资源属性的映射或列表输出变量?在terraform中,这两种方法都是可行的。你能详细说明一下你的问题,以便我(或其他人)能够为你提供具体的信息吗? - Avnish
1
@Avnish 我想构建一个包含所有资源属性的地图。 - Basil Musa
1个回答

5
是的,
output "my_vm" {
  value = aws_instance.my_vm
}

但是你会得到大量奇怪的垃圾信息,所以可能不值得这样做。


2
奇怪的是,这在terraform官方文档中并没有提到输出变量。 但它确实有效,并且效果很好。 - Basil Musa
1
这确实很奇怪。在许多情况下,它是一个有用的功能。 - Alain O'Dea
1
aws_instance.my_vm 这样的表达式只是产生一个表示资源实例的对象值,因此 Terraform 文档没有特别提到它,因为它只是与其它语言特性如何协同工作的自然结果。话虽如此,在编写创建抽象的模块时,我们通常希望封装资源的细节,这意味着返回整个资源并不像你想象的那样常见。当你需要时是可以这样做的,但我不建议在所有情况下都这样做。 - Martin Atkins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接