在Terraform中,变量是在模块之间共享数据的重要方式。但是,变量在子模块中默认情况下不会继承父模块的值。为了解决这个问题,可以使用以下方法之一:
# 父模块
variable "example_variable" {
default = "default_value"
}
# 子模块
variable "example_variable" {}
resource "example_resource" "example" {
example_variable = var.example_variable
}
# 父模块
data "terraform_remote_state" "example" {
backend = "remote"
config = {
...
}
}
# 子模块
variable "example_variable" {
default = data.terraform_remote_state.example.example_variable
}
resource "example_resource" "example" {
example_variable = var.example_variable
}
这样,子模块将能够获取父模块的变量值,从而实现变量的继承。