code: def test_simple_func(shared_ray_instance):
      @ray.remote
      def a(input: str):
          return f"{input} -> a"
  
      @ray.remote
      def b(a: "RayHandleLike"):
          # At runtime, a is replaced with execution result of a.
          return f"{a} -> b"
  
      # input -> a - > b -> ouput
      with InputNode() as dag_input:
          a_node = a.bind(dag_input)
          dag = b.bind(a_node)
  
      assert ray.get(dag.execute("input")) == "input -> a -> b"
      assert ray.get(dag.execute("test")) == "test -> a -> b"
  
file_path: ray/python/ray/dag/tests/test_input_node.py
imports: import pytest
  from ray.dag.dag_node import DAGNode
  from ray.dag.input_node import InputNode
  from typing import Any, TypeVar
  import ray
label_desc: Use image node_id 2 for calling a global function with example usage: test_simple_func(shared_ray_instance) and returns: input, str, a, str