From 6a7f99d6fa56159f4aede306328d7efdad786e7f Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Thu, 5 Feb 2026 11:57:52 +0000 Subject: [PATCH] define dockerfile (with print hello world) --- backend/condition/Dockerfile | 15 -------- backend/condition/handler.py | 37 ------------------ backend/condition/handler/Dockerfile | 25 ++++++++++++ backend/condition/handler/handler.py | 38 +++++++++++++++++++ .../condition/{ => handler}/requirements.txt | 0 5 files changed, 63 insertions(+), 52 deletions(-) delete mode 100644 backend/condition/Dockerfile delete mode 100644 backend/condition/handler.py create mode 100644 backend/condition/handler/Dockerfile create mode 100644 backend/condition/handler/handler.py rename backend/condition/{ => handler}/requirements.txt (100%) diff --git a/backend/condition/Dockerfile b/backend/condition/Dockerfile deleted file mode 100644 index 49723667..00000000 --- a/backend/condition/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM public.ecr.aws/lambda/python:3.11 - -# Set working directory (Lambda task root) -WORKDIR /var/task - - -# ----------------------------- -# Copy application code -# ----------------------------- - - -# ----------------------------- -# Lambda handler -# ----------------------------- -CMD ["handler.handler"] diff --git a/backend/condition/handler.py b/backend/condition/handler.py deleted file mode 100644 index 4aef0eac..00000000 --- a/backend/condition/handler.py +++ /dev/null @@ -1,37 +0,0 @@ -import json -from typing import Mapping, Any -from io import BytesIO - -from backend.condition.condition_trigger_request import ConditionTriggerRequest -from backend.condition.lookups.uprn_lookup_s3 import UprnLookupS3 -from backend.condition.processor import process_file -from utils.logger import setup_logger -from utils.s3 import read_io_from_s3 - - -logger = setup_logger() - - -def handler(event: Mapping[str, Any], context: Any) -> None: - uprn_lookup = UprnLookupS3( - bucket="", key="" - ) # TODO: replace with postgres implementation - - for record in event.get("Records", []): - try: - body_dict = json.loads(record["body"]) - payload = ConditionTriggerRequest.model_validate(body_dict) - - file_bytes: BytesIO = read_io_from_s3( - bucket_name=payload.trigger_file_bucket, - file_key=payload.trigger_file_key, - ) - - process_file( - file_stream=file_bytes, - file_type=payload.file_type, - uprn_lookup=uprn_lookup, - ) - - except Exception as e: - logger.error(f"Failed to process record: {e}") diff --git a/backend/condition/handler/Dockerfile b/backend/condition/handler/Dockerfile new file mode 100644 index 00000000..9414a1a9 --- /dev/null +++ b/backend/condition/handler/Dockerfile @@ -0,0 +1,25 @@ +FROM public.ecr.aws/lambda/python:3.11 +# FROM python:3.11.10-bullseye + +# Set working directory (Lambda task root) +WORKDIR /var/task + +# ----------------------------- +# Copy requirements FIRST (for Docker layer caching) +# ----------------------------- +COPY backend/condition/handler/requirements.txt . + +# Install dependencies into Lambda runtime +RUN pip install --no-cache-dir -r requirements.txt + +# ----------------------------- +# Copy application code +# ----------------------------- +COPY utils/ utils/ +COPY backend/condition/ backend/condition/ +COPY backend/__init__.py backend/__init__.py + +# ----------------------------- +# Lambda handler +# ----------------------------- +CMD ["backend/condition/handler/handler.handler"] diff --git a/backend/condition/handler/handler.py b/backend/condition/handler/handler.py new file mode 100644 index 00000000..1f3580f3 --- /dev/null +++ b/backend/condition/handler/handler.py @@ -0,0 +1,38 @@ +import json +from typing import Mapping, Any +from io import BytesIO + +from backend.condition.condition_trigger_request import ConditionTriggerRequest +from backend.condition.lookups.uprn_lookup_s3 import UprnLookupS3 +from backend.condition.processor import process_file +from utils.logger import setup_logger +from utils.s3 import read_io_from_s3 + + +logger = setup_logger() + + +def handler(event: Mapping[str, Any], context: Any) -> None: + print("hello world") + # uprn_lookup = UprnLookupS3( + # bucket="", key="" + # ) # TODO: replace with postgres implementation + + # for record in event.get("Records", []): + # try: + # body_dict = json.loads(record["body"]) + # payload = ConditionTriggerRequest.model_validate(body_dict) + + # file_bytes: BytesIO = read_io_from_s3( + # bucket_name=payload.trigger_file_bucket, + # file_key=payload.trigger_file_key, + # ) + + # process_file( + # file_stream=file_bytes, + # file_type=payload.file_type, + # uprn_lookup=uprn_lookup, + # ) + + # except Exception as e: + # logger.error(f"Failed to process record: {e}") diff --git a/backend/condition/requirements.txt b/backend/condition/handler/requirements.txt similarity index 100% rename from backend/condition/requirements.txt rename to backend/condition/handler/requirements.txt