Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terraform 地形12嵌套映射_Terraform_Terraform0.12+ - Fatal编程技术网

Terraform 地形12嵌套映射

Terraform 地形12嵌套映射,terraform,terraform0.12+,Terraform,Terraform0.12+,我只想请您帮助我如何从变量的嵌套变量中获取main.tf文件的值 PETS = { dog = { indoor = "poodle" outdoor = "labrador" others = "bulldog" } cat = { indoo

我只想请您帮助我如何从变量的嵌套变量中获取main.tf文件的

PETS = {
  dog = {
    indoor                          = "poodle"
    outdoor                         = "labrador"
    others                          = "bulldog"

  }
  cat = {
    indoor                          = "siamese"
    outdoor                         = "persian"
    others                          = "bengal"

  }
}
变量。tfvars

PETS = {
  dog = {
    indoor                          = "poodle"
    outdoor                         = "labrador"
    others                          = "bulldog"

  }
  cat = {
    indoor                          = "siamese"
    outdoor                         = "persian"
    others                          = "bengal"

  }
}
变量。tf

variable PETS { type = map }
module "lambda-module" {
  source                        = "../../module/lambda-module"
  PETS                          = var.PETS[var.TYPE[var.BREED]]
}
main.tf

variable PETS { type = map }
module "lambda-module" {
  source                        = "../../module/lambda-module"
  PETS                          = var.PETS[var.TYPE[var.BREED]]
}
我希望执行它,并使用以下命令获取适当的值并分配给lambda模块:

terraform plan -var-file=variables.tf -var "TYPE=dog" -var "BREED=outdoor"
但是我遇到了这个问题:

Error: Invalid index

  on main.tf line 3, in module "lambda-module":

3:   PETS          = var.PETS[var.TYPE[var.BREED]]
    |----------------
    | var.TYPE is "dog"
    | var.BREED is "outdoor"
您的问题在:
var.PETS[var.TYPE[var.BREED]

应该是:
var.PETS[var.TYPE][var.BREED]

以下是一个例子:

variable PETS {
  type = map
  default = {
    "dog" = {
      indoor  = "poodle"
      outdoor = "labrador"
      others  = "bulldog"
    },
    "cat" = {
      indoor  = "siamese"
      outdoor = "persian"
      others  = "bengal"
    }
  }
}

variable TYPE {
  type = string
}

variable BREED {
  type = string
}


output "TYPE_BREED" {
  value = var.PETS[var.TYPE][var.BREED]
}
您的问题在:
var.PETS[var.TYPE[var.BREED]

应该是:
var.PETS[var.TYPE][var.BREED]

以下是一个例子:

variable PETS {
  type = map
  default = {
    "dog" = {
      indoor  = "poodle"
      outdoor = "labrador"
      others  = "bulldog"
    },
    "cat" = {
      indoor  = "siamese"
      outdoor = "persian"
      others  = "bengal"
    }
  }
}

variable TYPE {
  type = string
}

variable BREED {
  type = string
}


output "TYPE_BREED" {
  value = var.PETS[var.TYPE][var.BREED]
}