"""parse-sme-marketing.""" import json import boto3 import config def handler(event, context): """Lambda entry point.""" logger = config.get_current_logger() bucket = event.get('bucket') key = event.get('key') logger.info(f'Received {bucket}/{key}.') s3_client = boto3.client('s3') file = s3_client.get_object(Bucket=bucket, Key=key) file_content = file.get('Body').read() json_data = json.loads(file_content) if '_part-' not in key: chunk_size = 200 chunks = [ json_data[i:i + chunk_size] for i in range(0, len(json_data), chunk_size) ] for k, chunk in enumerate(chunks): new_key = key.replace('.json', f'_part-{k}.json') s3_client.put_object( Bucket=bucket, Key=new_key, Body=json.dumps(chunk).encode(encoding='UTF-8') ) return { 'split_complete': True } else: items = [] i = 0 while i < len(json_data): items.append(i) i += 1 return { 'key': key, 'bucket': bucket, 'items': items, }