FinOps有望降低企业50%+的云成本! 了解详情
写点什么

Terraform 1.3,简化重构体验

  • 2022-10-05
    北京
  • 本文字数:1071 字

    阅读完需:约 4 分钟

Terraform 1.3,简化重构体验

HashiCorp宣布了Terraform 1.3版本发布,该版本引入带有默认值的可选对象类型属性,并扩展了moved 模块的功能。


Terraform 的类型约束让模块作者能够对输入变量的值进行验证。为处理复杂情况,开发者常用object 类型以允许命名属性集合拥有各自的类型。然而,这也就意味着模块使用者需要为所有属性赋值,甚至包括那些与当前任务无关的。


在 1.3 版本中可以为对象属性赋默认值,这个功能最初是在 Terraform 0.14 版本中实验性质加入支持。下面的例子中展示了定义变量时如何设置默认值:

variable "buckets" {  type = list(object({    name    = string    enabled = optional(bool, true)    website = optional(object({      index_document = optional(string, "index.html")      error_document = optional(string, "error.html")      routing_rules  = optional(string)    }), {})  }))}
复制代码

 

默认参数是可选的,如果不进行指定,Terraform 将使用类型中对应的null 值为默认值。如果指定了非空值为默认值,那么这个属性在接收模块中永远非空。当调用者没有设置默认值或调用者明确将属性值设置为null时,Terraform 都会设置默认值。


在 1.1 版本中引入了moved 移动块,为重构配置文件中的资源提供了程序化的手段。Terraform 会通过每个模块或资源的地址对比新配置与先前状态,移动或重命名对象都会导致 Terraform 销毁旧地址的对象并在新地址创建新的对象。而借助配置文件的移动块可以让 Terraform 将旧地址的已有对象视为是当前属于新地址的对象。


这种行为与terraform state mv 命令相同,但移动块允许直接在配置文件内追踪资源的移动。在最初的版本中,移动块只支持在同一本地路径内的模块间重构。1.3 版本中通过新增在第三方及不同来源模块中重构资源的功能,取消了这层限制。这也包括了从Terraform云端托管的私有注册中心,Terraform注册中心,或者任何source 参数中的选项。


1.3 版本的发布与Terraform v1.0的兼容性承诺相符,该承诺表示,1.x 的任何版本更新都不会对工作流产生影响,也不需要升级任何工具。虽然大多用户都不会受这次版本升级的影响,但部分行为可能会需要额外的升级步骤。比如在 1.3 版本中,一些未维护的状态存储后端将被废弃,包括:artifactoryetcdmanta ,以及swift


更多关于 1.3 版本发布的细节可以参考文档版本说明。Terraform 1.3 目前可从HashiCorp官网下载,也可以在 Terraform 云端使用。


原文链接

Terraform 1.3 Release Introduces Simplified Refactoring Experience


相关阅读:


基础设施即代码:只是漂移管理还不够

Docker 之父:Go、Rust 为什么会成为云原生的主导语言?

2022-10-05 10:468491

评论

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

头条Android 岗年薪45W+面经分享(技术 6面,Android开发者值得深入思考的几个问题

android 程序员 移动开发

如何评价-Google-的-Fuchsia、Android、iOS-跨平台应用框架-Flutter

android 程序员 移动开发

字节三面:ButterKnife为什么执行效率为什么比其他注入框架高?它的原理是什么

android 程序员 移动开发

太卷了!程序员面试前刷面经“神似,2021最新Android大厂面试真题大全

android 程序员 移动开发

如何让你的回调更具Kotlin风味,基于h5框架的移动app开发

android 程序员 移动开发

如果你在中小厂,这些你一定要搞懂,分享一些行业经验

android 程序员 移动开发

如果你打算跳槽BAT这样的大厂,不妨看看这篇文章,android蓝牙串口收发

android 程序员 移动开发

字节码插桩--你也可以轻松掌握(1),收割快手,字节,百度,美团的Offer之旅

程序员 移动开发

太强了吧,这居然是19年双非本科开发一年的Android面经总结!开发几年的老程序员自叹不如

android 程序员 移动开发

如何在复杂业务场景中优雅实现Android指纹验证?,rust移动端跨平台开发

android 程序员 移动开发

如何缩减接近 50% 的 Flutter 包体积,android开发计算器课程设计

android 程序员 移动开发

如何让你的app在后台被干掉后优雅的启动,flutter调用原生sdk

android 程序员 移动开发

如何看待:程序员(研究生学历,kotlin协程切换线程

android 程序员 移动开发

太难为我这个应届生了,腾讯面试了8轮,终拿下腾讯Android测发岗offer

android 程序员 移动开发

如何高效、快速学习Flutter?如何避坑,膜拜大牛

android 程序员 移动开发

如果你不是天才,那么你一定要看看这篇—,android开发书籍推荐

android 程序员 移动开发

如何用10行代码让app全局置灰,扫地阿姨看完都学会了

android 程序员 移动开发

如果你使用Jetpack中还没踩过这些坑,请务必收下这篇文章(1)

android 程序员 移动开发

字节码插桩--你也可以轻松掌握,2021年Android工作或许更难找

android 程序员 移动开发

如何实现一个 System Services?,超详细

android 程序员 移动开发

如何通俗理解设计模式及其思想_,Android自学资料

android 程序员 移动开发

如果你使用Jetpack中还没踩过这些坑,请务必收下这篇文章

android 程序员 移动开发

妈蛋!HR你搞我,我的缺点就是身体不好不能加班,安卓面试题及答案2020百度

android 程序员 移动开发

如何高效、快速学习Flutter?如何避坑(1),安卓消息分发机制

android 程序员 移动开发

字节Android岗面试:Handler中有Loop死循环,为什么没有阻塞主线程

android 程序员 移动开发

字节一面:https-真的安全吗?可以抓包吗,分享一点面试小经验

android 程序员 移动开发

字节三面:ButterKnife为什么执行效率为什么比其他注入框架高?它的原理是什么(1)

android 程序员 移动开发

好不容易撑过了腾讯三面!却因为虚报工资被刷了,挥泪整理面经

android 程序员 移动开发

好文推荐:RxHttp-完美适配Android-10-11-上传-下载-进度监听

android 程序员 移动开发

如何在-Android-中完成一个-APT-项目的开发?,android文件下载实战

android 程序员 移动开发

如何有效地刷算法题?,武汉软通动力android面试

android 程序员 移动开发

  • 需要帮助,请添加网站小助手,进入 InfoQ 技术交流群
Terraform 1.3,简化重构体验_云原生_Matt Campbell_InfoQ精选文章