code: def _get_security_groups(config, vpc_ids, group_names):
      unique_vpc_ids = list(set(vpc_ids))
      unique_group_names = set(group_names)
  
      ec2 = _resource("ec2", config)
      existing_groups = list(
          ec2.security_groups.filter(
              Filters=[{"Name": "vpc-id", "Values": unique_vpc_ids}]
          )
      )
      filtered_groups = [
          sg
          for sg in existing_groups
          if sg.group_name in unique_group_names
      ]
      return filtered_groups
  
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 21 for calling a global function with example usage: _get_security_groups(config, vpc_ids, group_names) and returns: filtered_groups