code: def validate_env_vars(env_vars):
      for k, v in env_vars.items():
          if not isinstance(k, str):
              raise MetaflowException(
                  "Found non string key %s (%s)" % (str(k), type(k))
              )
          if not isinstance(v, str):
              raise MetaflowException(
                  "Found non string value %s (%s)" % (str(v), type(v))
              )
          if not re.fullmatch("[a-zA-Z_][a-zA-Z0-9_]*", k):
              raise MetaflowException(
                  "Found invalid env var name '%s'." % k
              )
          for disallowed_prefix in DISALLOWED_SECRETS_ENV_VAR_PREFIXES:
              if k.startswith(disallowed_prefix):
                  raise MetaflowException(
                      "Found disallowed env var name '%s' (starts with '%s')."
                      % (k, disallowed_prefix)
                  )
  
imports: import os
  import re
  from metaflow.exception import MetaflowException
  from metaflow.decorators import StepDecorator
  from metaflow.metaflow_config import DEFAULT_SECRETS_ROLE
  from metaflow.unbounded_foreach import UBF_CONTROL
  from typing import Any, Dict, List, Union
label_desc: Use image node_id 4 for calling a global function with example usage: validate_env_vars(env_vars) without return types