n0z*_*0zz 8 variables merge terraform
变量映射的默认值是否与我提供给 terraform 的数据合并?
示例变量.tf:
variable "foo" {
type = map
default = {
lorem = "ipsum"
dolor = "sit"
}
}
Run Code Online (Sandbox Code Playgroud)
并且 foo.tfvars 提供了:
foo = {
dolor = "changed"
amet = "consectetur"
}
Run Code Online (Sandbox Code Playgroud)
还会${foo.lorem}存在吗?
会${foo.dolor}被“改变”吗?
会${foo.amet}可用吗?
Mar*_*ins 11
不,没有合并行为。如果您为变量设置显式值,则根本不使用默认值。
如果您需要与其他值合并,那么您可以使用该merge函数显式编写:
variable "foo" {
type = map(string)
default = {}
}
locals {
foo = merge(
tomap({
lorem = "ipsum"
dolor = "sit"
}),
var.foo,
)
}
Run Code Online (Sandbox Code Playgroud)
通过上述配置,您可以参考模块中的其他位置来var.foo获取调用者提供的确切值,或者local.foo获取将调用者的映射与默认值映射合并的结果。
| 归档时间: |
|
| 查看次数: |
20006 次 |
| 最近记录: |