code: def test_tensorflow_training_step_with_parameterized_code_input(
      pipeline_session,
      role,
      tf_full_version,
      tf_full_py_version,
      pipeline_name,
  ):
      base_dir = os.path.join(DATA_DIR, "tensorflow_mnist")
      entry_point1 = "mnist_v2.py"
      entry_point2 = "mnist_dummy.py"
      source_dir1 = pipeline_session.upload_data(
          path=os.path.join(
              base_dir, "tensorflow_mnist_source_code.tar.gz"
          ),
          key_prefix="integ-test-data/tf-scriptmode/mnist/training",
      )
      source_dir2 = pipeline_session.upload_data(
          path=os.path.join(
              base_dir, "tensorflow_mnist_source_code_dummy.tar.gz"
          ),
          key_prefix="integ-test-data/tf-scriptmode/mnist/training",
      )
      entry_point_param = ParameterString(name="EntryPoint")
      source_dir_param = ParameterString(name="SourceDir")
      input_path = pipeline_session.upload_data(
          path=os.path.join(base_dir, "data"),
          key_prefix="integ-test-data/tf-scriptmode/mnist/training",
      )
      inputs = TrainingInput(s3_data=input_path)
      instance_count = ParameterInteger(
          name="InstanceCount", default_value=1
      )
      output_path = ParameterString(
          name="OutputPath",
          default_value=f"s3://{pipeline_session.default_bucket()}",
      )
      checkpoint_s3_uri1 = "s3://{}/checkpoints/tf1-{}".format(
          pipeline_session.default_bucket(), sagemaker_timestamp()
      )
      checkpoint_s3_uri2 = "s3://{}/checkpoints/tf2-{}".format(
          pipeline_session.default_bucket(), sagemaker_timestamp()
      )
      checkpoint_s3_param = ParameterString(name="CheckpointS3Uri")
  
      # If image_uri is not provided, the instance_type should not be a pipeline variable
      # since instance_type is used to retrieve image_uri in compile time (PySDK)
      tensorflow_estimator = TensorFlow(
          entry_point=entry_point_param,
          source_dir=source_dir_param,
          role=role,
          instance_count=instance_count,
          instance_type="ml.m5.xlarge",
          framework_version=tf_full_version,
          py_version=tf_full_py_version,
          sagemaker_session=pipeline_session,
          output_path=output_path,
          checkpoint_s3_uri=checkpoint_s3_param,
      )
      # TODO: remove job_name once we merge
      # https://github.com/aws/sagemaker-python-sdk/pull/3158/files
      train_step_args = tensorflow_estimator.fit(
          inputs=inputs, job_name="TestJob"
      )
      step_train = TrainingStep(
          name="MyTrain",
          step_args=train_step_args,
      )
      pipeline = Pipeline(
          name=pipeline_name,
          parameters=[
              instance_count,
              output_path,
              entry_point_param,
              source_dir_param,
              checkpoint_s3_param,
          ],
          steps=[step_train],
          sagemaker_session=pipeline_session,
      )
  
      try:
          pipeline.create(role)
          # execution1
          _start_and_verify_execution_with_retry(
              pipeline=pipeline,
              parameters={
                  "EntryPoint": entry_point1,
                  "SourceDir": source_dir1,
                  "CheckpointS3Uri": checkpoint_s3_uri1,
              },
          )
          # execution2 updates parameters to different values
          _start_and_verify_execution_with_retry(
              pipeline=pipeline,
              parameters={
                  "EntryPoint": entry_point2,
                  "SourceDir": source_dir2,
                  "CheckpointS3Uri": checkpoint_s3_uri2,
              },
          )
      finally:
          try:
              pipeline.delete()
          except Exception as error:
              logging.error(error)
  
imports: from __future__ import absolute_import
  import os
  import uuid
  import logging
  import pytest
  from tests.integ.sagemaker.workflow.helpers import wait_pipeline_execution
  from sagemaker import TrainingInput, get_execution_role, utils, image_uris
  from sagemaker.debugger import DebuggerHookConfig, Rule, rule_configs
  from sagemaker.estimator import Estimator
  from sagemaker.pytorch.estimator import PyTorch
  from sagemaker.tensorflow import TensorFlow
  from sagemaker.utils import sagemaker_timestamp
  from sagemaker.workflow.functions import Join
  from sagemaker.workflow.parameters import ParameterInteger, ParameterString
  from sagemaker.workflow.pipeline import Pipeline
  from sagemaker.workflow.steps import TrainingStep
  from tests.integ.retry import retries
  from tests.integ import DATA_DIR
label_desc: Use image node_id 6 for calling a global function with example usage: test_tensorflow_training_step_with_parameterized_code_input(pipeline_session, role, tf_full_version, tf_full_py_version, pipeline_name) without return types