2017-02-13 14:52:45 -06:00
|
|
|
resource "aws_instance" "foo" {}
|
|
|
|
|
|
|
|
module "child1" {
|
|
|
|
source = "./child1"
|
|
|
|
instance_id = "${aws_instance.foo.id}"
|
|
|
|
}
|
|
|
|
|
|
|
|
module "child2" {
|
|
|
|
source = "./child2"
|
|
|
|
}
|
2017-05-10 20:27:49 -05:00
|
|
|
|
|
|
|
output "child1_id" {
|
|
|
|
value = "${module.child1.instance_id}"
|
|
|
|
}
|
|
|
|
|
|
|
|
output "child1_given_id" {
|
|
|
|
value = "${module.child1.given_instance_id}"
|
|
|
|
}
|
|
|
|
|
|
|
|
output "child2_id" {
|
|
|
|
# This should get updated even though we're targeting specifically
|
|
|
|
# module.child2, because outputs are implicitly targeted when their
|
|
|
|
# dependencies are.
|
|
|
|
value = "${module.child2.instance_id}"
|
|
|
|
}
|
|
|
|
|
|
|
|
output "all_ids" {
|
|
|
|
# Here we are intentionally referencing values covering three different scenarios:
|
|
|
|
# - not targeted and not already in state
|
|
|
|
# - not targeted and already in state
|
|
|
|
# - targeted
|
|
|
|
# This is important because this output must appear in the graph after
|
|
|
|
# target filtering in case the targeted node changes its value, but we must
|
|
|
|
# therefore silently ignore the failure that results from trying to
|
|
|
|
# interpolate the un-targeted, not-in-state node.
|
|
|
|
value = "${aws_instance.foo.id} ${module.child1.instance_id} ${module.child2.instance_id}"
|
|
|
|
}
|