Terraform 仅返回目标模块的输出

Terraform 仅返回目标模块的输出,terraform,Terraform,我有一个tf文件,它调用一组模块: variable "myvar" {} module "mod1" { arg = "${var.myvar}" paramblah = "sldkfjsldkfj" source = "...my git repo..." } module "mod2" { arg = "${var.myvar}" paramblah = "sdifjsdfssldkfjsldkfj" source = "...my git repo..." }

我有一个tf文件,它调用一组模块:

variable "myvar" {}

module "mod1" {
  arg = "${var.myvar}"
  paramblah = "sldkfjsldkfj"
  source = "...my git repo..."
}

module "mod2" {
  arg = "${var.myvar}"
  paramblah = "sdifjsdfssldkfjsldkfj"
  source = "...my git repo..."
}

module "mod3" {
  arg = "${var.myvar}"
  paramblah = "qiejiqjd"
  source = "...my git repo..."
}

output "myoutput" {
  value = ["${module.mod1.modsOutput}",
    "${module.mod2.modsOutput}",
    "${module.mod3.modsOutput}"]
}
有时,我会针对tf文件中的单个模块:

terraform apply -var myvar=sdfsdfsdf -target='module.mod2'

有没有办法让terraform output只返回我所针对的最后一个模块的输出?现在,如果我运行terraform output myoutput,它将返回我在列表中定义的所有模块的输出。

我只需要将它们分解为单独的输出:

variable "myvar" {}

module "mod1" {
  arg = "${var.myvar}"
  paramblah = "sldkfjsldkfj"
  source = "...my git repo..."
}

module "mod2" {
  arg = "${var.myvar}"
  paramblah = "sdifjsdfssldkfjsldkfj"
  source = "...my git repo..."
}

module "mod3" {
  arg = "${var.myvar}"
  paramblah = "qiejiqjd"
  source = "...my git repo..."
}

output "myoutput" {
  value = ["${module.mod1.modsOutput}",
    "${module.mod2.modsOutput}",
    "${module.mod3.modsOutput}"]
}

output "mod1" { value = "${module.mod1.modsOutput}"}
output "mod2" { value = "${module.mod2.modsOutput}"}
output "mod3" { value = "${module.mod3.modsOutputs}"}

这似乎是可行的,但有没有办法让它更具活力?不必单独冗余地插入它们?

只输出上一个目标模块的值,您想要实现什么?