Refer to the exhibit. A team runs this Vertex AI Pipeline definition but the deploy component never executes, even though the evaluate step outputs a metric of 0.9. What is the most likely cause?
The `condition` expression must directly use the output reference, not a local input.
Why this answer
Option D is correct because in Vertex AI Pipelines, the `condition` block evaluates a boolean expression at pipeline compile time, not runtime. If the condition references an input variable rather than the actual output of the `evaluate` component, the pipeline will use the default or placeholder value (often `False`), causing the deploy step to be skipped even when the runtime metric is 0.9. The condition must directly reference the `evaluate` component's output (e.g., `evaluate.outputs['metric']`) to be evaluated correctly at runtime.
Exam trap
Google Cloud often tests the distinction between compile-time and runtime evaluation in pipeline orchestration, trapping candidates who assume that pipeline input parameters are dynamically resolved at the same point as component outputs.
How to eliminate wrong answers
Option A is wrong because the gate component is not required for the deploy step; the condition is evaluated based on the evaluate component's output, not a gate output. Option B is wrong because if the deploy container image did not exist, the pipeline would fail with an image pull error, not silently skip execution. Option C is wrong because the pipeline order (train → evaluate → deploy) is correct; the evaluate step must run after train, and the condition is on evaluate's output, not on train.
Option E is wrong because the built-in `condition` component in Vertex AI Pipelines is fully capable of evaluating boolean expressions; a custom component is not needed and would not fix the issue of referencing an input variable instead of a component output.