code: def _get_key(key_name, config):
      ec2 = _resource("ec2", config)
      try:
          for key in ec2.key_pairs.filter(
              Filters=[{"Name": "key-name", "Values": [key_name]}]
          ):
              if key.name == key_name:
                  return key
      except botocore.exceptions.ClientError as exc:
          handle_boto_error(
              exc,
              "Failed to fetch EC2 key pair {} from AWS.",
              cf.bold(key_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 30 for calling a global function with example usage: _get_key(key_name, config) and returns: key