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","."]
docstr: Run classificaiton of the records in the Lambda input
  
  Args:
      records (list): An list of records received by Lambda
docstr_tok: ["Run","classificaiton","of","the","records","in","the","Lambda","input","Args",":","records","(","list",")",":","An","list","of","records","received","by","Lambda"]
code: def run(self, records):
      """Run classificaiton of the records in the Lambda input
  
      Args:
          records (list): An list of records received by Lambda
      """
      LOGGER.debug("Number of incoming records: %d", len(records))
      if not records:
          return
  
      for input_record in records:
          # Get the service and entity from the payload
          payload = StreamPayload.load_from_raw_record(input_record)
          if not payload:
              self._log_bad_records(input_record, 1)
              continue
  
          self._classify_payload(payload)
  
      self._log_metrics()
  
      # Send records to SQS before sending to Firehose
      self.sqs.send(self._payloads)
  
      # Send the data to firehose for historical retention
      if self.data_retention_enabled:
          categorized_records = self.firehose.send(self._payloads)
  
          # Extract artifacts if it is enabled
          if config.artifact_extractor_enabled(self._config):
              ArtifactExtractor(
                  self.firehose.artifacts_firehose_stream_name(
                      self._config
                  )
              ).run(categorized_records)
  
      return self._payloads
  
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 12 for calling the Classifier obj's underlying member method code with example usage: obj.run(records) and returns: self