Terraform – Local的使用
为什么有了 variable 还需要用 local?
- 复用与可读性:当你需要在多个地方使用相同的计算表达式时,用
local
可以避免重复书写,提高代码的可读性与可维护性。 - 内部计算逻辑:
local
常用于对输入的变量进行处理、拼接或者条件判断,从而生成适用于后续资源配置的中间值。 - 防止错误:集中定义计算逻辑后,如果需要修改计算方式,只需修改一处
local
定义,降低出错风险。
local的作用:
- 能够编写condition expression , 然后复用到多个地方
- 能够编写使用function来操作variable,生成一个暂时性的变量
- 能够把多个variable组合,生成一个新的变量
使用范例:
variable "env" {
type = string
default = "prod"
}
variable "instant_usage" {
type = map
default = {
"dev" = "t2.micro"
"prod" = "t3.micro"
}
}
locals {
#检查当下的使用的instant是否是t3micro
isT3Micro = lookup(var.instant_usage, var.env)=="t3.micro" ? true : false
# 将 env 和 instant_usage 组合成一个新的变量
instantName = "${var.env}-${lookup(var.instant_usage, var.env)}"
}
output "check_is_t3_micro" {
value = local.isT3Micro
}
output "check_instant_name"{
value = local.instantName
}
结果:

Facebook评论