写点什么

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

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

关注

评论

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

万界星空科技MES系统中的业务流程

万界星空科技

MES系统 mes 万界星空科技 生成流程管理

凤凰项目(Phoenix Project)精要 - 简介

Anliven

读书笔记 团队管理 DevOps 运维 团队效能

【HDC 2024】探索、交流、成长,华为云助力开发者成就星辰大海梦想

华为云开发者联盟

软件开发 华为云 华为云开发者联盟 华为开发者大会2024 企业号2024年6月PK榜

贵州正规等保测评机构还是四家吗?地址变了吗?

行云管家

等保 等级保护 等保测评 贵州

基于 Native 技术加速 Spark 计算引擎

Baidu AICLOUD

大数据 spark mapreduce Clickhouse Databricks

TDengine 签约精诚瑞宝,开拓更智能的 IT 服务和管理平台

TDengine

数据库 tdengine 时序数据库

山寨币大额解锁抛压拖累比特币:10X Research 深度剖析市场动荡

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

传媒行业指哪些?需要过等保吗?

行云管家

等保 等级保护 等保测评 传媒

Web网页端IM产品RainbowChat-Web的v7.0版已发布

JackJiang

即时通讯;IM;网络编程

亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践

火山引擎边缘云

CDN 边缘计算 边缘容器 CDN技术 边缘计算平台

软件测试学习笔记丨Pytest - 测试框架介绍(setup / teardown)

测试人

软件测试

实力出圈!赛博威荣获双项殊荣,数字化能力再获认可

赛博威科技

美丽搜索,MeiliSearch

为自己带盐

meilisearch

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