You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform中var=local.var与var="${local.var}"的区别及意义

Terraform子模块传递本地变量的写法对比

先直接给结论:在Terraform 0.12及以后的版本里,你给出的两种写法功能完全一致,都能正确把本地变量local.var的值传递给子模块的输入变量var。

为什么会存在第二种带${}的写法?

  • 这是旧版本遗留的习惯:在Terraform 0.11及更早版本中,引用变量、本地值这类动态值时,必须用插值语法${}包裹才能生效,当时只能这么写。现在新版本已经支持直接引用,无需再套插值语法。
  • 个人使用惯性:有些长期使用Terraform的开发者写惯了插值语法,哪怕不需要做字符串拼接,也会顺手加上${}。

单独写var = "${local.var}"有实际意义吗?

完全没有额外的功能价值,它和直接写local.var是完全等价的。唯一可能的特殊场景是强制将非字符串类型的值转为字符串,但这种情况极少——Terraform会自动处理类型转换,只要子模块的输入变量类型与你传递的值匹配,就不会有问题。

推荐哪种写法?

优先选择第一种var = local.var,因为它更简洁,符合Terraform现代语法规范,可读性也更好。

内容的提问来源于stack exchange,提问作者codeforester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 21:55:53