code: def _get_instance_profile(profile_name, config):
      iam = _resource("iam", config)
      profile = iam.InstanceProfile(profile_name)
      try:
          profile.load()
          return profile
      except botocore.exceptions.ClientError as exc:
          if (
              exc.response.get("Error", {}).get("Code")
              == "NoSuchEntity"
          ):
              return None
          else:
              handle_boto_error(
                  exc,
                  "Failed to fetch IAM instance profile data for {} from AWS.",
                  cf.bold(profile_name),
              )
              raise exc
  
imports: import copy
  import itertools
  import json
  import logging
  import os
  import time
  from collections import Counter
  from functools import lru_cache, partial
  from typing import Any, Dict, List, Optional, Set, Tuple
  import boto3
  import botocore
  from packaging.version import Version
  from ray.autoscaler._private.aws.cloudwatch.cloudwatch_helper import CloudwatchHelper
  from ray.autoscaler._private.aws.utils import LazyDefaultDict, handle_boto_error, resource_cache
  from ray.autoscaler._private.cli_logger import cf, cli_logger
  from ray.autoscaler._private.event_system import CreateClusterEvent, global_event_system
  from ray.autoscaler._private.providers import _PROVIDER_PRETTY_NAMES
  from ray.autoscaler._private.util import check_legacy_fields
  from ray.autoscaler.tags import NODE_TYPE_LEGACY_HEAD, NODE_TYPE_LEGACY_WORKER
label_desc: Use image node_id 29 for calling a global function with example usage: _get_instance_profile(profile_name, config) and returns: profile, None