"""Lambda module.""" from content_utils.exceptions import IneligibleEventError from content_utils.logging.logger import ContentLambdaLogger import sentry_sdk from sentry_sdk.integrations.aws_lambda import AwsLambdaIntegration from src import config from src.logic import event_handling if config.SENTRY_DSN: sentry_sdk.init( dsn=config.SENTRY_DSN, environment=config.ENVIRONMENT, integrations=[AwsLambdaIntegration(timeout_warning=True)] ) lambda_logger = ContentLambdaLogger(config.app_logger) def handler(event, context): """Lambda Entry point.""" lambda_logger.start() lambda_logger.set_data(**event) status = 'success' try: result = event_handling.processing_logic( event.get('product_id'), event.get('release_correction_id')) lambda_logger.set_data(status='success', result=f'Successfully {result}.') except IneligibleEventError as e: status = 'skip' lambda_logger.set_data(status=status, result=str(e)) except Exception as e: lambda_logger.set_data(status='error', result=str(e)) raise e finally: lambda_logger.end() return {'status': status}