HashiCorp将于今年夏末发布Terraform 0.12。该版本根据社区输入和反馈中一些广受关注的问题,对Terraform做了一系列新的改进。其中的主要改进包括第一类表达式(first-class expressions)、for表达式和条件语句。对一些Terraform用户而言,升级到新版本会导致重大更改。

\\

第一类表达式将简化Terraform脚本编写,并为语言额外添加一些优点。在当前的版本中,表达式作为插值序列(interpolation sequences)区别对待,以双引号包裹。在0.12版中,表达式将成为语言的原生部分,可如下直接编写:

\\

\variable \"ami\" {}\# Terraform 0.11及早期版本\resource \"aws_instance\" \"example\" {\   ami = \"${var.ami}\"\}\# Terraform 0.12\resource \"aws_instance\" \"example\" {\   ami = var.ami\}

\\

该改进也将支持在表达式中通过[...]{...}直接使用List和Map,并可与新的for表达式一并使用支持动态过滤,以及配置中List和Map的相互转换。在对结果做过滤时,可选择使用if语句。例如:

\\

\# Terraform 0.12\output \"instance_public_ip_addresses\" {\   value = {\      for instance in aws_instance.example:\         instance.id =\u0026gt; instance.public\         if instance.associate_public_ip_address\   }\}

\\\尽管条件运算符(“… ? … : …”)已加入Terraform中有一段时间了,但它的两部分返回值总是需要求值,因此使用受限。这个问题在即将推出的0.12版中得到了修正,条件运算符的运行符合用户的期望。条件运算符的另一个主要改进是它将可应用于任何类型。例如:\\

\# Terraform 0.12\locals {\   first_id = length(azurerm_virtual_machine.example) \u0026gt; 0 ? azurerm_virtual_machine.example[0].id : \"\"\}

\\\在当前版本的Terraform中,该例子将会产生失败。因为无论表达式解析为什么,两部分的返回值都需要做求值。\\

要在Terraform中引入这些改进,需重新实现底层的配置语言。Terraform核心团队正努力实现更改的最小化,并为迁移到0.12版提供了“升级指南”。在版本发布前,推荐用户在脚本中对Terraform的版本进行限定。团队认为,聚焦于该版本的配置改进,可使重大改进最小化,并可更快地转向使用未来特性。团队将继续在技术博客上介绍即将推出的改进,并针对当前和未来的改进寻求社区的反馈。

\\

查看英文原文: Terraform 0.12 Releasing This Summer With for Loops and First-Class Expressions

今夏发布的Terraform 0.12将提供for循环和第一类表达式相关推荐

  1. 微软发布 PowerToys 0.12.0,带来批量处理工具和暗黑模式

    微软发布了 PowerToys 0.12.0 版本.PowerToys 是微软开发者开发的免费实用工具集,可以用于高级用户调整和简化 Windows 操作,以提高效率.其最早出现在 Windows 9 ...

  2. 网络与服务器编程框架库 acl_3.0.12 发布

    2019独角兽企业重金招聘Python工程师标准>>> acl 3.0.12 版本 (项目主页:https://sourceforge.net/projects/acl/,  技术文 ...

  3. Quarkus 0.12.0 发布,下一代 K8s 原生 Java 框架

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   Quarkus 0.12.0 发布了,Quarkus 是一个用于编写 Java 应用的云原生.容器优先框架. 此版本包含 213 个问题和 ...

  4. 分享:Arcadia 0.12.1 发布,Ruby 集成开发环境

    Arcadia 0.12.1 发布,Ruby 集成开发环境 http://www.oschina.net/news/35942/arcadia-0-12-1

  5. Apache Libcloud 0.12.3 发布

    Libcloud 0.12.3 发布了,该版本主要是 bug 修复,修复了 Python 3.3 相关的一些问题. 安装:pip install apache-libcloud libcloud 是一 ...

  6. 12项信息安全标准发布 为解决车联网行业“顽疾”提供可靠指导

    随着智能网联汽车技术和产品逐步商用,信息安全技术越发受到重视,智能网联汽车存在受到远程攻击或控制的风险,已成为智能网联汽车全面走向市场应用的重要瓶颈之一. 12项信息安全标准发布 为解决车联网行业&q ...

  7. 12月14号发布的Notes Domino 12.0.1正式版

    大家好,才是真的好. 我们的小道消息总是那么精准,又一次的,HCL在12月14号当天发布了Notes Domino 12.0.1,并可在HCL Flenet站点上进行下载. 又一次的,包含所有语言版本 ...

  8. 华为鸿蒙12月16日发布会,华为即将发布新系统?12月16日,举行鸿蒙2.0开发者活动...

    原标题:华为即将发布新系统?12月16日,举行鸿蒙2.0开发者活动 去年的华为站在手机行业中的顶峰,而今年的华为却站在风雨中奋斗,不得不说,现在的华为就是树大招风,去年以新机的发量在市场上压下了苹果, ...

  9. iOS微信7.0.12发布!除了适配暗黑模式,还有这些新功能!

    前几天,"微信不适配深色模式就会被下架"的消息闹得沸沸扬扬~最后,腾讯微信团队官宣"与苹果达成合作,共同探索微信在iOS系统的暗黑模式体验,有望在下一个版本中上线!&qu ...

最新文章

  1. 使用Docker部署Node.js中的Vue项目
  2. 13、Power Query-逆透视列的实例(下)
  3. redis命令-key操作
  4. php用switch编写车费的输出,PHP Switch语句在实际代码中的应用
  5. 计算机控制系统期末判断题,计算机控制系统期末试题.doc
  6. python绘制动态图表怎么存下来_做动态图表,没有数据?用Python就能获取!
  7. vs2010常见错误记录
  8. 4.8 迁移数据,添加根路径
  9. ENVI入门系列教程---一、数据预处理---1.2基本操作--5.x以后的界面(旧界面)
  10. easyui三级联动 html,jQuery使用EasyUi实现三级联动下拉框效果实例分享
  11. vim配置:高亮所在的行和列
  12. jpg格式怎么转换成plt格式的_一种JPG图像到PLT文件的转化方法.pdf
  13. Java制作一个更加真实的按钮
  14. 浙江大学计算机2018分数线,浙江大学2018多少录取分数线
  15. PAT——1118 Birds in Forest 甲级
  16. reactjs遍历数据的方式
  17. python一切皆对象 对象都有类_Python小世界:彻底搞懂Python一切皆对象!!!
  18. finalshell root文件夹打不开
  19. 国行Android手机使用google全套GMS服务小结
  20. 微信授权登录:PC端扫码登录[unionid](二)

热门文章

  1. maven仓库的安装与配置
  2. java stl分解_Java Thread 之間 記憶體空間分析
  3. java8 hadoop_java8-模拟hadoop
  4. 新华三的背景_星际联盟一行莅临新华三集团杭州总部,展望分布式存储广阔发展空间...
  5. 用python实现语音的传输功能_用Python+WechatPCAPI实现微信消息防撤回
  6. java file用法_Java File 类的使用方法详解(转)
  7. java读取sh脚本_linux环境下java读取sh脚本并执行
  8. Sql为什么连接不上服务器上的数据库
  9. Hive案例:统计单词个数
  10. ES6学习笔记01:Symbol数据类型