如何覆盖terraform上模块级定义的映射变量值
我已经在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 = {
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"
}
}