在Terraform中,将对象属性从父级传递到子级通常是通过使用模块(modules)和输入变量(input variables)来实现的。下面是一个基本的示例,说明如何实现这一点。
假设我们有一个父级配置和一个子级模块,我们希望将父级配置中的一个对象属性传递到子级模块中。
main.tf
)module "child_module" {
source = "./child_module"
parent_object = {
key1 = "value1"
key2 = "value2"
}
}
child_module/variables.tf
)variable "parent_object" {
type = object({
key1 = string
key2 = string
})
}
child_module/main.tf
)resource "example_resource" "example" {
key1 = var.parent_object.key1
key2 = var.parent_object.key2
}
module "child_module"
,并传递了一个名为 parent_object
的对象属性。variables.tf
文件中,我们定义了一个输入变量 parent_object
,其类型是一个对象,包含 key1
和 key2
两个属性。main.tf
文件中,我们定义了一个资源 example_resource.example
,并使用 var.parent_object.key1
和 var.parent_object.key2
来引用传递过来的属性值。这种模式在以下场景中非常有用:
通过这种方式,你可以灵活地将父级配置中的对象属性传递到子级模块中,从而实现更复杂和可重用的基础设施代码。
领取专属 10元无门槛券
手把手带您无忧上云