云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

天翼云_腾讯云视听会员_是什么

小七 141 0

HashiCorp Terraform 0.12预览版

这是本系列文章的介绍性文章,重点介绍terraform0.12中的新特性。terraform0.12专注于Terraform语言的主要改进,将于2019年第一季度发布。我们正在发布之前就terraform0.12进行沟通,以强调即将到来的改进,以便社区能够提供早期反馈。HCL中的改进包括for循环、条件表达式的改进、可为null的参数、使用JSON精确的1:1映射等等。不幸的是,引入这些更改导致了多个突破性的更改。我们分析了大量公开可用的Terraform配置,相信这些突破性的变化只会影响一小部分用户。我们将尽早发布升级指南和这些博客文章,以便与社区就这些即将到来的变化进行沟通。»改善盐酸HCL,Terraform的底层配置语言(以及我们的大多数工具),自最初发布以来的4年中基本上没有变化。在广泛的组织环境中使用多年的产品后,Terraform用户已经发现该语言的许多方面需要改进。多年来,试图弥补HCL的局限性已经产生了一些聪明但不直观的解决方法。大约一年前,我们开始开发HCL的一个主要迭代,通过构建一个更健壮、功能丰富的语言来简化编写、分析和处理地形配置的过程,从而全面地处理这种反馈。今年早些时候,我们开始将这个新的HCL迭代集成到terraform0.12中。我们在terraform0.12中引入了十几个新的改进,这些改进集中在改进核心语言上。除了直接的好处,使它进入Terraform0.12ChangeLog,新的HCL引擎为我们提供了更大的灵活性,以便将来引入新功能。»显著改善下面的列表显示了在Terraform 0.12中出现的HCL和Terraform的显著改进。这个列表包含了每一个的基本描述,后续的博客文章将详细介绍每一个。第一类表达式。在0.12之前,表达式必须用双引号括在插值序列中,例如"${变量foo}". 对于0.12,表达式是语言的本机部分,可以直接使用。示例:ami=变型ami[1]对于表达式。for表达式可用于迭代和筛选列表和映射值。此表达式始终可以在需要列表或映射的任何位置使用。动态块。现在可以基于列表/映射动态生成aws_security_组中的rule之类的子块,并支持迭代。广义"Splat"算子。特殊的resource.*.field语法仅适用于设置了count的资源。现在这是一个通用运算符,适用于任何列表值。有条件的改进。条件运算符。。。: ... 现在支持任何值类型并惰性地计算结果,正如那些熟悉其他语言中此运算符的人所期望的那样。另外,特殊值null现在可以分配给任何字段,以表示没有值。这会导致Terraform从上游API调用中省略字段,这在某些情况下对于触发某些默认行为非常重要。丰富的模块输入和输出类型。自terraform0.7以来,Terraform支持将基本列表和地图作为输入/输出,但元素仅限于简单的值。terraform0.12允许任意复杂的列表和映射用于任何输入和输出,包括模块。模板语法。在字符串值中,新的模板语法可用于循环,而无需复杂的嵌套插值。示例:%{例如在aws中_实例.示例~}服务器${实例.id}%{endfor}。可靠的JSON语法。terraform0.12hcl配置与JSON之间有精确的1:1映射。作为一级值的引用。对诸如depends\u-on等字段的资源和模块的引用过去是任意字符串。在terraform0.12中,资源标识符可以像aws_kms一样使用_grant.示例(没有引号!)。这改进了我们可以提供的验证和错误消息。类似地,资源引用可以作为输出从模块返回,也可以作为参数接受。在接下来的几周里,我们将发布更多关于上述改进的详细信息的博客文章,另外还有一些。每一篇文章都将包含一些示例片段,这样您就可以更容易地理解发生了什么变化,以及升级到Terraform0.12时与该特定更改相关的任何重要信息。»突破性变化引入这些变化导致了一些突破性的变化。大多数用户将能够升级到Terraform 0.12,而无需更改配置。然而,一小部分用户需要以某种方式修改他们的配置。我们已经出版了正在进行的工作Terraform 0.12升级指南0.0.0用户可以开始准备地形。请注意,在Terraform 0.12发布之前,此升级指南可能会继续更改。特别是,我们正在继续寻找自动化或完全消除一些破坏性变化的方法。除了升级指南之外,我们正在为一些突破性的更改开发自动化工具,这样就不会完全是手工操作了。在编写配置时,我们始终建议限制Terraform版本以确保安全执行。»下一个我们对Terraform0.12的改进感到非常兴奋。许多这些特性已经被请求多年,但是它们需要重置Terraform的配置处理的基础。有了这个新的基础,Terraform准备迅速改进和支持新的特点,在即将发布的版本。我们提前为我们引入的破坏性变化道歉。在过去的6个月里,我们已经将突破性变化的数量降到了最低,我们将继续评估是否可以降低这个数量。此外,我们将重点放在这个版本中的配置更改上,目的是将来的版本不需要任何突破性的更改。如果您对提议的变更有任何反馈或疑虑,请通过公共邮件列表与我们联系。我们很高兴讨论这些变化!在接下来的几周里,我们将发布特性预览博客文章,深入探讨Terraform0.12的个别改进!