Merge branch 'main' of github.com:Hestia-Homes/Model into mlmodel

This commit is contained in:
Michael Duong 2023-09-01 19:25:40 +01:00
commit 7a1f9f94f7
3 changed files with 21 additions and 11 deletions

View file

@ -56,7 +56,7 @@ jobs:
# Building and pushing Docker image with caching
- name: Build and push Docker image
uses: docker/build-push-action@v4
uses: docker/build-push-action@v3
with:
context: ./model_data/simulation_system
file: ./model_data/simulation_system/Dockerfiles/Dockerfile.prediction.lambda
@ -65,12 +65,14 @@ jobs:
cache-from: type=gha
cache-to: type=gha,mode=max
platform: linux/amd64
provenance: false
- name: Deploy to AWS Lambda via Serverless
env:
RUNTIME_ENVIRONMENT: ${{ github.ref_name }}
MODEL_DIRECTORY_BUCKET: 'retrofit-model-directory-${{ github.ref_name }}'
PREDICTIONS_BUCKET: 'retrofit-sap-predictions-${{ github.ref_name }}'
DATA_BUCKET: 'retrofit-data-${{ github.ref_name }}'
DOMAIN_NAME: ${{ steps.set_domain.outputs.domain }}
ECR_URI: ${{ steps.set_ecr_credentials.outputs.ecr_uri }}
GITHUB_SHA: ${{ github.sha }}

View file

@ -1,7 +1,11 @@
import os
import urllib.parse
import logging
from predictions import prediction
logger = logging.getLogger()
logger.setLevel(logging.INFO)
RUNTIME_ENVIRONMENT = os.environ.get("RUNTIME_ENVIRONMENT", "dev")
@ -10,14 +14,15 @@ def handler(event, context):
Take in event and trigger the prediction pipeline
"""
logger.info("received event: " + str(event))
# Assuming a file in a bucket landing for now?
# Assuming we have a model to use
payload = event["body"]
data_path = payload["file_location"]
property_id = payload["property_id"]
portfolio_id = payload["portfolio_id"]
created_at = payload["created_at"]
data_path = event["file_location"]
property_id = event["property_id"]
portfolio_id = event["portfolio_id"]
created_at = event["created_at"]
try:
# We could fix the model path but for the moment, we just take the best model path based on the registry
@ -30,8 +35,8 @@ def handler(event, context):
return storage_filepath
except (Exception, KeyError, ValueError) as e:
print("Prediction failed")
print(e)
logger.info("Prediction failed")
logger.info(e)
if __name__ == "__main__":

View file

@ -8,6 +8,7 @@ provider:
RUNTIME_ENVIRONMENT: ${env:RUNTIME_ENVIRONMENT}
MODEL_DIRECTORY_BUCKET: ${env:MODEL_DIRECTORY_BUCKET}
PREDICTIONS_BUCKET: ${env:PREDICTIONS_BUCKET}
DATA_BUCKET: ${env:DATA_BUCKET}
DOMAIN_NAME: ${env:DOMAIN_NAME}
ECR_URI: ${env:ECR_URI}
GITHUB_SHA: ${env:GITHUB_SHA}
@ -52,7 +53,7 @@ resources:
PolicyDocument:
Version: '2012-10-17'
Statement:
# Allow reading from MODEL_DIRECTORY_BUCKET
# Allow reading from MODEL_DIRECTORY_BUCKET and DATA_BUCKET
- Effect: Allow
Action:
- s3:GetObject
@ -60,6 +61,8 @@ resources:
Resource:
- arn:aws:s3:::${env:MODEL_DIRECTORY_BUCKET}
- arn:aws:s3:::${env:MODEL_DIRECTORY_BUCKET}/*
- arn:aws:s3:::${env:DATA_BUCKET}
- arn:aws:s3:::${env:DATA_BUCKET}/*
# Allow reading and writing to PREDICTIONS_BUCKET
- Effect: Allow
Action:
@ -68,4 +71,4 @@ resources:
- s3:ListBucket
Resource:
- arn:aws:s3:::${env:PREDICTIONS_BUCKET}
- arn:aws:s3:::${env:PREDICTIONS_BUCKET}/*
- arn:aws:s3:::${env:PREDICTIONS_BUCKET}/*