add basic handler for now

This commit is contained in:
Michael Duong 2023-08-29 19:35:18 +01:00
parent bd53427c72
commit 5d1b81e54b
3 changed files with 55 additions and 0 deletions

View file

@ -0,0 +1,14 @@
FROM public.ecr.aws/lambda/python:3.10
# Install python packages
COPY ../requirements/predictions/predictions.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Copy the project code to user home directory
COPY ./core ${LAMBDA_TASK_ROOT}/simulation_system/core
COPY ./MLModel ${LAMBDA_TASK_ROOT}/simulation_system/MLModel
COPY ./predictions.py ${LAMBDA_TASK_ROOT}/simulation_system/predictions.py
COPY ./handlers/predictions_app.py ${LAMBDA_TASK_ROOT}/simulation_system/predictions_app.py
# Run off a lambda trigger
CMD [ "prediction_app.handler" ]

View file

@ -0,0 +1,14 @@
FROM public.ecr.aws/lambda/python:3.10
# Install python packages
COPY ../requirements/training/training.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Copy the project code to user home directory
COPY ./core ${LAMBDA_TASK_ROOT}/simulation_system/core
COPY ./MLModel ${LAMBDA_TASK_ROOT}/simulation_system/MLModel
COPY ./training.py ${LAMBDA_TASK_ROOT}/simulation_system/training.py
COPY ./handlers/training_app.py ${LAMBDA_TASK_ROOT}/simulation_system/training_app.py
# Run off a lambda trigger
CMD [ "training_app.handler" ]

View file

@ -0,0 +1,27 @@
import os
import urllib.parse
from predictions import prediction
def handler(event, context):
"""
Take in event and trigger the prediction pipeline
"""
# Assuming a file in a bucket landing for now?
# Assuming we have a model to use
bucket = event["Records"][0]["s3"]["bucket"]["name"]
key = urllib.parse.unquote_plus(
event["Records"][0]["s3"]["bucket"]["key"], encoding="utf-8"
)
prediction_file = bucket + "/" + key
# TODO: put a model into s3, both locally and in aws
model_path = os.environ.get("MODEL_PATH", "http://minio:9000/data/model_directory/")
try:
prediction(model_path=model_path, data_path=prediction_file)
except (Exception, KeyError, ValueError):
print("Prediction failed")