Terraform 推出0.12版 针对语言进行了大幅度修改

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SBFPLAY561/article/details/90604193

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服务。更多内容来源:http://www.ai.org.tw/map.asp

猜你喜欢

转载自blog.csdn.net/SBFPLAY561/article/details/90604193