from src.constants import AppExecutionTypes from src.handlers.main_handler import main_handler from src.handlers.job_handler import playlists_sync_handler from src.logger import get_logger from src.utils import get_app_execution_type EXECUTION_TYPE_TO_HANDLER = { AppExecutionTypes.MAIN: main_handler, AppExecutionTypes.USER_PLAYLISTS_SYNC: playlists_sync_handler, AppExecutionTypes.BACKGROUND_PLAYLISTS_SYNC: playlists_sync_handler, } def lambda_handler(event, context): log = get_logger(context.aws_request_id, recreate=True) lambda_instance_type = get_app_execution_type() log.info(f"[lambda-{lambda_instance_type}] invoked by {event}.") if "warmup" in event: log.info(f"[lambda-{lambda_instance_type}] handled warmup event.") return True return EXECUTION_TYPE_TO_HANDLER[lambda_instance_type](event, log) if __name__ == "__main__": # import json e = { "httpMethod": "GET", # "path": "/playlistsync/1/playlists/1/execute", "path": "/doc/swagger.json", # "body": json.dumps({"some": "field"}), "headers": {"Content-Type": "application/json", "Authorization": "Bearer aSSAD asdasd"}, } class Context: aws_request_id: str = "local_request_id" result = lambda_handler(e, Context) print(result)