如何覆盖terraform上模块级定义的映射变量值

如何覆盖terraform上模块级定义的映射变量值,terraform,terraform-provider-gcp,terraform0.12+,Terraform,Terraform Provider Gcp,Terraform0.12+,我已经在terraform中创建了自定义模块 main.tf resource "xyz" "abc" { name = var.settings[name] type = var.settings[type] } variable.tf variable "settings" { type = map(any) description = "Default variables" default = {

我已经在terraform中创建了自定义模块

main.tf
resource "xyz" "abc" {
 name = var.settings[name]
 type = var.settings[type]
}

variable.tf
variable "settings" {
 type = map(any)
 description = "Default variables"
  default = {
    name  = "test"
    type = "instance"
}
我正在访问此模块,并希望在访问模块时覆盖默认值

module "xyz" {

source ="../../xyz"
name = "google"    // want to override this default value 
type = "cloud"     //want to override this default value 
}

请帮助如何覆盖在模块级定义的映射变量,您也可以将其作为映射传入,即:

module "xyz" {
  source ="../../xyz"
  settings = {
    name = "google"
    type = "cloud"
  }
}

请注意,模块中缺少您的
main.tf
”:

模块中的
变量.tf
缺少一个结束
}

variable "settings" {
  type = map(any)
  description = "Default variables"
  default = {
    name = "test"
    type = "instance"
  }
}

不清楚问题开头提供的配置是根模块配置的一部分,还是声明的模块
xyz
config。您能澄清一下吗?是的,模块级别上也提供了配置和默认变量,当我使用这个模块时,我想覆盖这些变量
variable "settings" {
  type = map(any)
  description = "Default variables"
  default = {
    name = "test"
    type = "instance"
  }
}