38 lines
1.1 KiB
Plaintext
38 lines
1.1 KiB
Plaintext
resource "aws_instance" "foo" {}
|
||
|
||
module "child1" {
|
||
source = "./child1"
|
||
instance_id = "${aws_instance.foo.id}"
|
||
}
|
||
|
||
module "child2" {
|
||
source = "./child2"
|
||
}
|
||
|
||
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:
|
||
<20># - 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}"
|
||
}
|