发布在即!企业 AIGC 应用程度测评,3 步定制专属评估报告。抢首批测评权益>>> 了解详情
写点什么

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

  • 2018-08-03
  • 本文字数:972 字

    阅读完需:约 3 分钟

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 => instance.public
if instance.associate_public_ip_address
}
}

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

复制代码
# Terraform 0.12
locals {
first_id = length(azurerm_virtual_machine.example) > 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

2018-08-03 10:451083
用户头像

发布了 391 篇内容, 共 126.0 次阅读, 收获喜欢 255 次。

关注

评论

发布
暂无评论
发现更多内容

高效GO语言集成开发工具 GoLand 2023 注册码中文版

mac大玩家j

代码编辑器 Mac软件 语言开发工具

软件测试/测试开发/丨人工智能与测试开发沙龙(PPT和回放集锦)

测试人

人工智能 软件测试

开班在即 | 测试开发线下高薪私教班助力你的职场晋升

测吧(北京)科技有限公司

测试

测试开发 | 创业与人工智能的密切关系

测吧(北京)科技有限公司

测试

开放原子开发者大会 | 开源就是国际化,华为大力推动开源社区建设

新消费日报

如何通过ETLCloud的API对接功能实现各种SaaS平台数据对接

RestCloud

SaaS API ETL

CQ 社区版 V2.7.0 发布 | 数据源版本扩充、新增批量执行功能等

BinTools图尔兹

数据库 运维 数据安全 dba 数据库管理

石磊:BANI时代下,企业人才管理破局之道

用友BIP

智能招聘

Mac电脑文献管理推荐 EndNote 21激活最新版

胖墩儿不胖y

Mac软件 文献管理工具 文献工具

1688商品评论数据接口(1688.item_review)

tbapi

1688API接口 1688商品评论接口 1688商品评论数据接口 1688商品评价接口 1688商品评论API

专家论道:构建完善的新型显示产业生态体系

Geek_2d6073

京东商品评论数据接口(JD.item_review)

tbapi

京东API接口 京东商品评论接口 京东商品评论内容接口 京东评论API接口

解析$nextTick魔力,为啥大家都爱它?

京东科技开发者

只需一个bitget钱包,让你的web3体验翻倍

威廉META

只需一个bitget钱包,让你的web3体验翻倍

鳄鱼视界

测试开发 |AI驱动的健康监测与管理:数字化时代的医疗创新

测吧(北京)科技有限公司

测试

一分钟带你了解人工神经网络(ANN)

小齐写代码

个人年度总结:大模型驱动技术的趋势洞察

Geek-yan

企业级“RAS”的数据平台如何炼成?

Geek_2d6073

测试开发 | 物流与供应链中的智能优化

测吧(北京)科技有限公司

测试

全新升级!名企私教服务加盟全栈开发与自动化测试班,成就你的技术梦想

测吧(北京)科技有限公司

测试

测试开发 | 游戏开发中的人工智能创新:探索数字娱乐的未来

测吧(北京)科技有限公司

测试

2023新型显示产业技术创新专业赛圆满收官

Geek_2d6073

IPQ8074/IPQ8072 What's the performance difference?|8X8 4X4 High Performance 802.11ax Solution

wallyslilly

IPQ8072 IPQ8074

测试用例设计方法六脉神剑——第六剑:心法至简,百家之长集成

京东科技开发者

万界星空MES系统的十大核心功能

万界星空科技

数字化转型 MES系统 智能制造 mes 万界星空科技mes

高薪程序员的三大窍门,你准备好了吗?

SoFlu软件机器人

云原生技术:实践探索与未来展望

不会算法。

XSKY SDS V6.3 版本发布:持续强化非结构化存储和管理能力

XSKY星辰天合

万界星空科技铜线MES、漆包线MES系统

万界星空科技

生产管理系统 智能制造 mes 漆包线mes 铜线mes

人人都是智能体开发者!百度灵境矩阵打造国内最完整智能体生态

科技热闻

今夏发布的Terraform 0.12将提供for循环和第一类表达式_DevOps & 平台工程_Matt Campbell_InfoQ精选文章