mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
33 lines
1.3 KiB
Python
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}")
|