AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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

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

关注

评论

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

荣耀换帅,一艘AI巨轮的舵手更替会带来什么?

脑极体

AI

苹果电脑装机必备精美日历软件:CalendarX for mac

Rose

Little Snitch 4 for Mac(小飞贼系统防火墙软件) v4.4.3稳定激活版

Rose

AI英语阅读理解APP的主要功能

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语练习

Seata 源码

京东科技开发者

分布式日志追踪ID实战

京东科技开发者

分布式系统架构8:分布式缓存

卷福同学

Java redis 分布式 后端 分布式缓存

中小型科技公司效率提升秘籍

伤感汤姆布利柏

Mac解压缩zip工具 Unzip Expert-Zip file tool for Mac v1.4.0激活版

Rose

Mac ftp文件传输工具 SecureFX注册激活版

Rose

内部信息流出!37天GeeLark云手机直接薅!!

kookeey代理严选

亚马逊运营 跨境电商运营 海外IP代理 Tiktok shop 指纹浏览器

ClkLog埋点用户分析系统支持手机端查询统计数据

ClkLog

开源 数据分析 埋点 sdk 用户画像

Omnissa Secure Email Gateway 2.31 - 电子邮件网关

sysin

horizon

数据迁移丨借助 AI 从 PostgreSQL 到 GreatSQL

GreatSQL

Ascend+FastAPI+ Uvicorn 实现推理

zjun

推理 昇腾

VMware Data Services Manager 2.2 发布 - 数据库管理和数据服务管理

sysin

数据库

VMware Avi Load Balancer 31.1.1 发布 - 多云负载均衡平台

sysin

负载均衡

Parallels Toolbox for mac(工具箱合集)v7.0.0商业版

Rose

我国数字经济创稳中求进

芯盾时代

数字经济

使用贪心算法解决最小生成树问题

威哥爱编程

Python 算法

一文让你清楚的知道互联网时代数据的重要性-行云管家

行云管家

数据安全 数据智能化 数据的重要性

大数据平台Bug Bash大扫除最佳实践

京东科技开发者

Cisco ACI Simulator 6.1(2g) - ACI 模拟器

sysin

ACI

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