Terraform 仅返回目标模块的输出
我有一个tf文件,它调用一组模块: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..." }
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}"}
这似乎是可行的,但有没有办法让它更具活力?不必单独冗余地插入它们?只输出上一个目标模块的值,您想要实现什么?