Terraform 地形图输出:使用的编码是什么

Terraform 地形图输出:使用的编码是什么,terraform,Terraform,我已经保存了TerraformPlan-out=my plan,并打算将其保存到源代码管理中,并进一步注入到定制工具中,以用于摄取和执行测试等 但是,myplan的文件内容很混乱,我想知道使用的编码是什么 地形图文件使用的编码是什么?地形图输出是一种二进制格式,设计用于地形图之外。从技术上讲,您可能可以使用Terraform用来处理格式的任何东西对其进行序列化,但是没有稳定的API来处理该格式,并且在任何时候都可能发生更改 Hashicorp的一名员工()在本期中简要介绍了这一点: 一个可能相当

我已经保存了
TerraformPlan-out=my plan
,并打算将其保存到源代码管理中,并进一步注入到定制工具中,以用于摄取和执行测试等

但是,
myplan
的文件内容很混乱,我想知道使用的编码是什么


地形图文件使用的编码是什么?

地形图输出是一种二进制格式,设计用于地形图之外。从技术上讲,您可能可以使用Terraform用来处理格式的任何东西对其进行序列化,但是没有稳定的API来处理该格式,并且在任何时候都可能发生更改

Hashicorp的一名员工()在本期中简要介绍了这一点:


一个可能相当脆弱的选项是简单地解析运行
terraformplan
的文本输出。在使用Terraform根本无法处理的JSON差异时,我使用本地格式化计划输出,这可以解决这个问题。然而,它也倾向于在“次要”版本升级(例如0.9到0.10)上中断,因为Terraform根本没有将其指定为API。还解析文本输出,并注意到它在很大程度上不能与二进制输出一起使用。

我发现了这一点,并且非常适合使用

Terraform使用格式对计划进行编码/解码 这在terraform版本上发生了变化,他们开始使用协议缓冲区


tfjson
项目可能不适用于0.11.x和0.12.x,除非您重写那里的依赖关系

虽然这里提到的其他工具很有用,但地形空间中的情况会定期变化,第三方工具通常无法保持最新

一段时间以来,Terraform直接支持以运行
plan
时显示的相同人类可读格式查看计划文件:

terraform show <filename>
terraformshow
从v0.12开始,您现在还可以查看JSON格式的计划文件,您可以保存该文件以便使用其他工具进一步处理:

terraform show -json <filename>
terraformshow-json
这里有一个关于JSON模式的解释。在撰写本文时,请注意:

输出。。。目前主要版本为零,表明该格式是实验性的,可能会更改。未来版本将分配非零主版本。。。然而,在第一个主要版本发布之前,我们预计格式不会有任何重大的突破性变化


好的,谢谢,我将尝试使用terraform plan解析器。