"""Main Handler.""" from typing import Dict, List from bulk_metadata_ingester_common.utils.jitter import jitter from bulk_metadata_ingester_common.utils.logging import get_current_logger import config def handler(events: List[Dict], context: object) -> Dict: """Lambda Entrypoint.""" correlation_id = events[0].get('correlation_id') logger = get_current_logger( config.ENVIRONMENT, config.LAMBDA_NAME, logging_level=config.LOGGING_LEVEL, correlation_id=correlation_id) # Jitter calls - Sleep for randomness jitter(logger) # Log lambda begins message logger.info(f'aggregate_errors received: {events}') result = aggregate_errors(events, logger) return result def aggregate_errors(events: List[Dict], logger: object) -> Dict: """Aggregate errors from the parallel step.""" error_list = [] for event in events: if event.get('error'): error_list.append(event.get('error')) if error_list: events[0]['errors'] = error_list return events[0]