C. moduleB is using var.vpc_id instead of module.moduleA.vpc_id as input
D. Terraform does not support passing outputs between modules
Solution
Step 1: Check input assignment in moduleB
moduleB expects vpc_id input, but it is assigned from var.vpc_id, which is a variable, not the output from moduleA.
Step 2: Identify correct way to pass output
The correct way is to assign vpc_id = module.moduleA.vpc_id to pass the output from moduleA.
Final Answer:
moduleB is using var.vpc_id instead of module.moduleA.vpc_id as input -> Option C
Quick Check:
Pass outputs via module.moduleA.output, not var [OK]
Hint: Use module.<name>.<output> to pass outputs, not var.<name> [OK]
Common Mistakes:
Assuming var.vpc_id automatically links to moduleA output
Ignoring the need to explicitly connect modules
Thinking Terraform cannot pass outputs between modules
5. You want to create a composed Terraform setup where moduleC depends on outputs from both moduleA and moduleB. Which pattern correctly composes these modules to pass outputs as inputs to moduleC?
B. Use variables instead of module outputs for inputs
C. Swap inputs but still use correct module outputs
D. Pass outputs correctly matching input names from moduleA and moduleB
Solution
Step 1: Match inputs to correct module outputs
Pass outputs correctly matching input names from moduleA and moduleB passes inputA from moduleA.outputA and inputB from moduleB.outputB, matching names correctly.
Step 2: Evaluate other options
Use variables instead of module outputs for inputs uses variables instead of outputs, which breaks composition. Swap inputs but still use correct module outputs swaps the assignments, mismatching inputA (expects moduleA.outputA) with moduleB.outputB and inputB with moduleA.outputA. Mix outputs incorrectly between modules mixes outputs incorrectly, likely causing errors.
Final Answer:
Pass outputs correctly matching input names from moduleA and moduleB -> Option D
Quick Check:
Correct output-to-input mapping = Pass outputs correctly matching input names from moduleA and moduleB [OK]
Hint: Match input names to correct module outputs carefully [OK]
Common Mistakes:
Swapping outputs between modules without checking input expectations