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