def lambda_handler()

in lambda/api/lambda_metrics.py [0:0]


def lambda_handler(event, context):
    try:
        logger.debug(json.dumps(event))

        # Get metrics from s3 json lines
        metrics = []
        if "Records" in event:
            metrics = get_metrics(event)
        elif "Metrics" in event:
            metrics = event["Metrics"]

        update_metrics(metrics)

        # TODO: Consider correlating ground through metrics against for user_id invocations/clicks to return
        # see: https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-merge.html
        # see also: https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker_model_monitor/model_quality/model_quality_churn_sdk.ipynb

        # Log the metrics count
        result = {
            "metric_count": len(metrics),
        }
        return {"statusCode": 200, "body": json.dumps(result)}
    except ClientError as e:
        # Get boto3 specific error message
        error_message = e.response["Error"]["Message"]
        logger.error(error_message)
        raise Exception(error_message)
    except Exception as e:
        logger.error(e)
        raise e