from typing import List import json def parse_events(event, logger) -> List[dict]: records = event.get("Records", []) if not records: logger.warning(f"[parse_events] Got no records to parse.\nEvent: {event}") return [] number_of_records = len(records) logger.info(f"[parse_events] Got {number_of_records} records.\nRecords: {records}") parsed = [] for i, record in enumerate(records): body = json.loads(record.get("body", '""')) or {} sync_ids, triggered_manually = body.get("sync_ids"), body.get("triggered_manually", False) if not sync_ids: logger.warning( f"[parse_events][{i}/{number_of_records}] Got a record without sync_ids, skipped.\nRecord: {record}") continue parsed.append({"sync_ids": sync_ids, "triggered_manually": triggered_manually}) logger.info(f"[parse_events] Parsed {len(parsed)}/{number_of_records} records.") return parsed