罗湖做网站运营乐云seo,短信验证码接码网站建设,手机桌面布局设计软件,宁波网站建设lonooTerraform输入变量用于从外部传递值到Terraform模块内部进行使用#xff0c;如果把Terraform代码看作是一个函数的话#xff0c;Terraform输入变量就是函数的输入参数。 Terraform局部值则用于在Terraform模块内部定义反复使用的常量值或表达式#xff0c;如果把Terraform代…Terraform输入变量用于从外部传递值到Terraform模块内部进行使用如果把Terraform代码看作是一个函数的话Terraform输入变量就是函数的输入参数。 Terraform局部值则用于在Terraform模块内部定义反复使用的常量值或表达式如果把Terraform代码看作是一个函数的话Terraform局部值就是函数内部的局部变量。 Terraform局部值只能在Terraform模块内部使用。
局部值定义
局部值使用locals块定义
locals {service_name formowner Community Team
}
在一个locals块中可以定义多个局部值当然在同一个Terraform模块中可以定义多个locals块。 在locals块中定义的局部值可以引用一个常量也可以引用输入变量值还可以引用资源属性或其他的局部值如下示例
locals {# 局部值引用的是资源属性instance_ids concat(aws_instance.blue.*.id, aws_instance.green.*.id)
}
如上示例在locals块中定义的局部值引用的是资源属性甚至还使用了函数concat()。
如下示例在locals块中引用的则是其他局部值
locals {common_tags { # 这个局部值是一个对象类型它在属性中引用了其他局部值Service local.service_nameOwner local.owner}
} 局部值引用
引用局部值的语法local.NAME如
# 在资源定义中引用局部值
resource aws_instance example {tags local.common_tags
} 注 局部值定义在locals块中但是引用局部值使用的是local。 何时使用局部值
局部值可以帮助我们避免写重复复杂的表达式提升代码的可读性但是过度使用局部值也会增大代码的复杂度使得代码的维护者更难理解所使用的表达式和值。 所以适度使用局部值仅用于反复引用同一个复杂的表达式或常量值的场景这样将来在修改表达式时会变得相当轻松。