写点什么

今夏发布的 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:451702
用户头像

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

关注

评论

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

中文最新版3D建模软件:Rhinoceros 8 (犀牛8) v8.12

Rose

【HarmonyOS】公司鸿蒙项目收工总结之《屏幕适配》

zhongcx

鸿蒙应用示例:如何解决DevEco预览器上下白色间距问题及实现全屏沉浸式体验

zhongcx

低代码平台如何简化员工培训并提升技术能力?

天津汇柏科技有限公司

低代码平台

百度公共IM系统的Andriod端IM SDK组件架构设计与技术实现

JackJiang

即时通讯;IM;网络编程

鸿蒙应用示例:图像处理优化与交互改进

zhongcx

3D机械时钟动态桌面壁纸 Digital Clock 3D for Mac v2.1.2激活版

Rose

超强AI图像编辑器 Luminar Neo v1.21.0中文直装版 mac/win

Rose

高效使用AI,一文掌握提示词的编写原则

禅道项目管理

人工智能 AI 项目管理软件 AIGC ChatGPT

上云后如何有效控制云成本?有啥好方法?

行云管家

云计算 云服务 企业上云 云成本

ConceptDraw PROJECT for Mac 专业的项目管理工具v15.0.0.344 激活版

Rose

RapidComposerV5 for mac v5.3.3 高效歌曲创作辅助工具

Rose

【HarmonyOS】鸿蒙利用emitter封装工具类

zhongcx

【HarmonyOS】鸿蒙仿iOS线性渐变实现

zhongcx

【HarmonyOS】鸿蒙高仿华为阅读翻页

zhongcx

降低数据平台成本 ,Apache Airflow迁移上云案例分享

华为云开发者联盟

开源 CCE apache 社区 华为云DTSE

Microsoft Remote Desktop 微软远程访问工具 mac中文直装版

Rose

鸿蒙应用示例:系统退出应用的最佳实践

zhongcx

好用的mac磁盘分析工具 Disk Xray v4.4激活版

Rose

VMware Fusion Pro 13 for Mac v13.6.1中文激活秘钥 VM虚拟机最新版

Rose

第五届国际科创节探寻新质生产力 候选品牌:行云管家

行云管家

国际科创节

【HarmonyOS】公司鸿蒙项目收工总结之《三方库》

zhongcx

鸿蒙应用示例:购物车侧滑删除、侧滑收藏、计算价格

zhongcx

办公必备软件:ConceptDraw Office(业务图表、思维导图和项目管理)

Rose

领先的思维导图软件工具ConceptDraw MINDMAP mac/win

Rose

PDF解析+RAG,手把手教你在Coze搭建个人知识库!

合合技术团队

PDF rag 个人知识库

【HarmonyOS】公司鸿蒙项目收工总结之《组件》

zhongcx

【HarmonyOS】公司鸿蒙项目收工总结之《API》

zhongcx

软件测试学习笔记丨文本处理常用Linux命令-vi、grep、awk、sed

测试人

软件测试

Mac音频控制软件 SoundSource 5 内置高级均衡器和多种预设效果

Rose

如何用豆包MarsCode 打造简洁高效的星级评分组件?

TRAE.ai

人工智能 AI 代码 组件 模版

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