text: import importlib
  import sys
  import logging
  
  from utils import utils
  
  # Central handler for all Lambda events.
  def handler(event, context):
      start_time = utils.local_now()
  
      domain = event.get('domain')
      options = event.get('options')
      name = event.get('scanner')
      environment = event.get('environment')
  
      # Log all sent events, for the record.
      utils.configure_logging(options)
      logging.info(event)
  
      # Might be acceptable to let this crash the module, in Lambda.
      try:
          scanner = importlib.import_module("scanners.%s" % name)
      except ImportError:
          exc_type, exc_value, exc_traceback = sys.exc_info()
          logging.error("[%s] Scanner not found, or had an error during loading.\n\tERROR: %s\n\t%s" % (name, exc_type, exc_value))
          exit(1) # ?
  
      # Same method call as when run locally.
      data = scanner.scan(domain, environment, options)
  
      # We capture start and end times locally as well, but it's
      # useful to know the start/end from Lambda's vantage point.
      end_time = utils.local_now()
      duration = end_time - start_time
      response = {
          'lambda': {
              'log_group_name': context.log_group_name,
              'log_stream_name': context.log_stream_name,
              'request_id': context.aws_request_id,
              'memory_limit': context.memory_limit_in_mb,
              'start_time': start_time,
              'end_time': end_time,
              'measured_duration': duration
          },
          'data': data
      }
  
      # Serialize and re-parse the JSON, so that we run our own
      # date transform functions in one place, before Amazon's built-in
      # JSON serialization prepares the data for transport.
      return utils.from_json(utils.json_for(response))
  
  