code: def validate_cluster_compute(
      cluster_compute: Dict[str, Any]
  ) -> Optional[str]:
      aws = cluster_compute.get("aws", {})
      head_node_aws = cluster_compute.get("head_node_type", {}).get(
          "aws_advanced_configurations", {}
      )
  
      configs_to_check = [aws, head_node_aws]
  
      for worker_node in cluster_compute.get("worker_node_types", []):
          worker_node_aws = worker_node.get(
              "aws_advanced_configurations", {}
          )
          configs_to_check.append(worker_node_aws)
  
      for config in configs_to_check:
          error = validate_aws_config(config)
          if error:
              return error
  
      return None
  
imports: import copy
  import json
  import os
  import re
  from typing import Dict, List, Optional, Tuple, Any
  import jsonschema
  import yaml
  from ray_release.test import Test, TestDefinition
  from ray_release.anyscale_util import find_cloud_by_name
  from ray_release.bazel import bazel_runfile
  from ray_release.exception import ReleaseTestCLIError, ReleaseTestConfigError
  from ray_release.logger import logger
  from ray_release.util import DeferredEnvVar, deep_update
label_desc: Use image node_id 8 for calling a global function with example usage: validate_cluster_compute(cluster_compute) and returns: None, error