code: def two_step_pipeline_with_task_only_dependency() -> tfx.dsl.Pipeline:
      """Returns a simple 2-step pipeline with task only dependency between them."""
  
      step_1 = tfx.dsl.experimental.create_container_component(
          name="Step 1",
          inputs={},
          outputs={},
          parameters={},
          image="step-1-image",
          command=["run", "step-1"],
      )()
  
      step_2 = tfx.dsl.experimental.create_container_component(
          name="Step 2",
          inputs={},
          outputs={},
          parameters={},
          image="step-2-image",
          command=["run", "step-2"],
      )()
      step_2.add_upstream_node(step_1)
  
      return tfx.dsl.Pipeline(
          pipeline_name="two-step-task-only-dependency-pipeline",
          pipeline_root=_TEST_PIPELINE_ROOT,
          components=[step_1, step_2],
      )
  
imports: import datetime
  import os
  from typing import List
  from kfp.pipeline_spec import pipeline_spec_pb2
  import tensorflow_model_analysis
  from tfx import v1
  from tfx.components.example_gen import utils
  from tfx.components.trainer.executor import Executor
  from tfx.dsl.component.experimental import executor_specs
  from tfx.dsl.component.experimental import placeholders
  from tfx.dsl.components.base import base_component
  from tfx.dsl.components.base import base_executor
  from tfx.dsl.components.base import base_node
  from tfx.dsl.components.base import executor_spec
  from tfx.types import channel_utils
  from tfx.types import component_spec
  from tfx.types.experimental import simple_artifacts
  from tfx.utils import proto_utils
  from google.protobuf import message
label_desc: Use image node_id 14 for calling a global function with example usage: two_step_pipeline_with_task_only_dependency() and returns: tfx