更新时间:2022-02-10 GMT+08:00

本地变量

本地变量可以理解为模块中的临时变量,其作用范围在所声明的模块内,通过关键字 "local" 进行声明。本地变量适用于配置中有重复定义相同值或表达式的场景,可以减少代码冗余,并且易于修改。同时过度使用本地变量会导致变量的实际值被隐藏,代码晦涩,不利于维护,因此建议合理使用本地变量。

声明本地变量

本地变量通过“locals”关键字进行声明:

locals {
  service_name = "forum"
  owner        = "Community"
}

本地变量的表达式不仅限于字符和数值常量,还可以使用输入变量、资源属性和其他本地变量的引用和表达式结果:

locals {
  dns_list = concat(huaweicloud_vpc_subnet.subnet_1.dns_list, huaweicloud_vpc_subnet.subnet_2.dns_list)
}

locals {
  common_tags = {
    Service = local.service_name
    Owner   = local.owner
  }
}

引用本地变量

在声明本地变量后,可以通过 local.<变量名称> 对其进行引用。

resource "huaweicloud_obs_bucket" "bucket_demo" {
  ...
  tags = local.common_tags
}