code: def _create_model_server_runner(
      model_path: str,
      serving_binary: serving_bins.ServingBinary,
      serving_spec: infra_validator_pb2.ServingSpec,
  ):
      """Create a ModelServerRunner from a model, a ServingBinary and a ServingSpec.
  
      Args:
        model_path: An IV-flavored model path. (See model_path_utils.py)
        serving_binary: One of ServingBinary instances parsed from the
            `serving_spec`.
        serving_spec: A ServingSpec instance of this infra validation.
  
      Returns:
        A ModelServerRunner.
      """
      platform = serving_spec.WhichOneof("serving_platform")
      if platform == "local_docker":
          return local_docker_runner.LocalDockerRunner(
              model_path=model_path,
              serving_binary=serving_binary,
              serving_spec=serving_spec,
          )
      elif platform == "kubernetes":
          return kubernetes_runner.KubernetesRunner(
              model_path=model_path,
              serving_binary=serving_binary,
              serving_spec=serving_spec,
          )
      else:
          raise NotImplementedError(
              "Invalid serving_platform {}".format(platform)
          )
  
imports: import contextlib
  import functools
  import os
  import signal
  import threading
  import time
  from typing import Any, Dict, List, Optional
  from absl import logging
  from tfx import types
  from tfx.components.infra_validator import error_types
  from tfx.components.infra_validator import request_builder
  from tfx.components.infra_validator import serving_bins
  from tfx.components.infra_validator import types
  from tfx.components.infra_validator.model_server_runners import kubernetes_runner
  from tfx.components.infra_validator.model_server_runners import local_docker_runner
  from tfx.dsl.components.base import base_executor
  from tfx.proto import infra_validator_pb2
  from tfx.types import artifact_utils
  from tfx.types import standard_component_specs
  from tfx.utils import io_utils
  from tfx.utils import path_utils
  from tfx.utils import proto_utils
  from tfx.utils.model_paths import tf_serving_flavor
  from tensorflow_serving.apis import classification_pb2
  from tensorflow_serving.apis import predict_pb2
  from tensorflow_serving.apis import prediction_log_pb2
  from tensorflow_serving.apis import regression_pb2
label_desc: Use image node_id 1 for calling a global function with example usage: _create_model_server_runner(model_path, serving_binary, serving_spec) and returns: local_docker_runner, kubernetes_runner