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
}

结果:

Loading

Facebook评论