深入理解 Terraform Local 变量:以 AWS EC2 创建为例
在编写 Terraform 配置时,我们经常需要重复使用某些表达式或计算中间值。虽然输入变量(variable)可以传递外部值,但它们并不适合用来组织内部复用的计算结果。这时,本地变量(Local Values) 就成了简洁、可维护代码的好帮手。什么是 Local 变量?Local 变量通过 locals 块定义,允许你在当前模块内为某个表达式赋予一个名称。它的值可以是静态的字符串、数字,也可以是动态拼接、条件运算、甚至调用函数的返回结果。```hcllocals { common_tags = { Environment = "Production" Project = "MyApp" }}```与输入变量(variable)不同:· variable 从模块外部传入,适合参数化配置。· local 在模块内部计算,不暴露给调用方,仅用于简化内部逻辑。什么时候使用 Local 变量?结合实际场景,以下几种情况特别适合使用 locals:1. 消除重复 – 相同的标签、命名前缀、参数值在多处出现时。2. 组合与转换 – 将多个变量拼接成新字符串,或对原始值做类型转换。3. 条件逻辑 – 根据环境或参数动态决定某个值(如不同的 AMI、实例规格)。4. 提高可读