class_docstr: Classify, map source, and parse a raw record into its declared type.
class_docstr_tok: ["Classify",",","map","source",",","and","parse","a","raw","record","into","its","declared","type","."]
code: def __init__(self):
      # Create some objects to be cached if they have not already been created
      Classifier._config = Classifier._config or config.load_config(
          validate=True
      )
      Classifier._firehose_client = (
          Classifier._firehose_client
          or FirehoseClient.load_from_config(
              prefix=self.config["global"]["account"]["prefix"],
              firehose_config=self.config["global"]
              .get("infrastructure", {})
              .get("firehose", {}),
              log_sources=self.config["logs"],
          )
      )
      Classifier._sqs_client = Classifier._sqs_client or SQSClient()
  
      # Setup the normalization logic
      Normalizer.load_from_config(self.config)
      self._cluster = os.environ["CLUSTER"]
      self._payloads = []
      self._failed_record_count = 0
      self._processed_size = 0
  
imports: from collections import OrderedDict
  import os
  import logging
  from streamalert.classifier.clients import SQSClient
  from streamalert.shared.firehose import FirehoseClient
  from streamalert.classifier.parsers import get_parser
  from streamalert.classifier.payload.payload_base import StreamPayload
  from streamalert.shared import config, CLASSIFIER_FUNCTION_NAME
  from streamalert.shared.artifact_extractor import ArtifactExtractor
  from streamalert.shared.exceptions import ConfigError
  from streamalert.shared.logger import get_logger
  from streamalert.shared.metrics import MetricLogger
  from streamalert.shared.normalize import Normalizer
label_desc: Use image node_id 1 to create a new Classifier object  with example: obj = Classifier()