"""Lambda module.""" from content_utils.exceptions import InvalidMessageException from content_utils.logging.logger import ContentLambdaLogger import sentry_sdk from sentry_sdk.integrations.aws_lambda import AwsLambdaIntegration from src import config from src.connectors.opensearch import os_connector 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 patch_product(payload): """Update index.""" if payload is None: raise InvalidMessageException('Invalid message structure: Missing payload') os_connector.patch_product(payload) def handler(event, context): """Lambda Entry point.""" lambda_logger.start() lambda_logger.set_data( product_id=event.get('product_id'), queue_id=event.get('review_queue_id') ) lambda_logger.logger.debug(event) try: patch_product(event.get('payload')) lambda_logger.set_data(status='success', result='patched index') except Exception as e: lambda_logger.set_data(status='error', result=f'{e}\n{event}') raise e finally: lambda_logger.end() return {'status': 'success'}