首页>动态 >内容

基础架构即程式码工具Terraform大改语法释出最新0.12版本

动态2021-02-22 14:06:15
最佳答案

HashiCorp发布了最新的基础架构即程式码工具Terraform 0.12,这个版本对语言进行了大幅度的修改,官方希望增加配置的可读性,并提高可重用模组的可用性,增加的功能包含新的表示式语法、通用类型系统(Generalized Type System)以及迭代建构(Iteration Constructs)等。官方提醒,这个版本进行诸多修改,与先前版本不相容。

Terraform使用大量的表达式在资源之间传递配置,而且在表达式中的引用,会被用来创建决定操作步骤的相依图(Dependency Graph),在之前的版本,Terraform要求所有文字表达都需要以字串的形式表达,但从Terraform 0.12开始,官方修改了表达式的语法,开始允许表达式在任何情况下直接使用,不需要再使用字串内插补点语法。官方提到,随着表达式和配置越来越複杂,新的语法能够增加可读性。

之前版本:

Terraform 0.12:

而Terraform 0.12新加入的通用类型系统,能让模组之间传递物件更加方便。Terraform一开始的版本主要使用字串运作,后来版本陆续加入Lists与Maps资料结构,不过由于初始的语言功能并不支援,使得这两个资料结构并不好用,尤其是在模组组合模式(Module Composition Patterns)的时候,所有必要的属性都需以单独的参数值输出与输入,而现在通用类型系统提供了额外传递物件以及数值的方式,可以将整个物件列表做为一个整体传递。

之前版本:

Terraform 0.12:

另一个资料结构在过去版本不好用的原因,则是缺乏通用的迭代建构方法,无法进行Lists与Maps转换,现在Terraform 0.12加入了for运算子,就能够透过映射或是过滤输入元素,建置另一个集合。

而过去Terraform会将执行计画简化输出成键值配对,而在巢状模组中会难以让使用者了解确切更改的地方,现在Terraform 0.12添加了全新的计画渲染器,并且与新的类型系统整合,以配置语言的行事显示变更,并且能以缩排显示巢状结构。

Terraform 0.12也大大改进了错误消息内容,能更好地显示配置错误与其他潜在问题,官方提到,过去的错误讯息品质不一,经常性地缺少上下文,导致使用者即便收到错误讯息,也难以理解真正问题发生的原因,而且讯息内使用的术语也不一致,新的Terraform 0.12错误讯息现遵循可预测的结构,定义了错误讯息需包含的所有资讯,同时也统一了用语。

官方提醒,由于这个版本的语法进行了极大程度的修改,势必无法与之前版本完全相容,虽然大致相容于Terraform 0.11,但部分的语法改进需要更严谨的解析器与语言模型,以消除歧异或是让错误讯息提供更好的回馈。另外,现在包括PaaS、SaaS以及AWS、GCP、Azure等IaaS供应商,尚未提供相容于Terraform 0.12的服务,但官方已经发布了最新的供应商开发者指南,加速帮助供应商提供Terraform 0.12服务。

免责声明:本文由用户上传,如有侵权请联系删除!