Model/backend/onboarders/handler.py
2026-02-05 11:19:03 +00:00

33 lines
1.3 KiB
Python

import json
from onboarders.factory import OnboarderFactory
from utils.logger import setup_logger
logger = setup_logger()
def handler(event, context):
"""
Lambda handler that triggers the model engine for each SQS message.
"""
for record in event.get("Records", []):
try:
event_body = json.loads(record["body"])
# TODO: Implement logic to check which file type we have
# Sample input data
event_body = {
"s3_uri": "s3://retrofit-data-dev/ara_raw_inputs/peabody/2025_11_11 - Peabody - Data Extracts for "
"Domna.xlsx",
"system": "parity",
"format": "xlsx",
"sheet_name": "Sustainability"
}
logger.info("Processing record with body: %s", event_body)
Onboarder = OnboarderFactory.create_onboarder(event_body["system"])
onboarder = Onboarder(fileuri=event_body["s3_uri"])
logger.info("Transforming data for record with body: %s", event_body)
onboarder.transform()
logger.info("Writing data for record with body: %s", event_body)
onboarder.write()
except Exception as e:
logger.error(f"Failed to process record: {e}")