"""Lambda royalty_collection_territory_backfill function module.""" from datetime import datetime import config from lambdacommon.common_config import logger import sentry_sdk from sentry_sdk.integrations.aws_lambda import AwsLambdaIntegration from royalty_collection_territory_backfill.connectors.db import mysql_connection from royalty_collection_territory_backfill.processor import TerritoryBackfillProcessor if config.SENTRY_DSN: sentry_sdk.init( dsn=config.SENTRY_DSN, environment=config.ENVIRONMENT, integrations=[AwsLambdaIntegration(timeout_warning=True)] ) def handler(event, context): """Lambda entry point.""" try: with ( mysql_connection( **config.ART_RELATIONS_MYSQL_CONFIG ) as ar_mysql_conn, mysql_connection( **config.ROYALTY_ACCOUNTING_MYSQL_CONFIG ) as abacus_mysql_conn ): processor = TerritoryBackfillProcessor(ar_mysql_conn, abacus_mysql_conn) start_time = datetime.now() processor.process() end_time = datetime.now() diff = end_time - start_time logger.info(f'Finished processing in {diff}') except Exception as e: logger.exception(str(e)) raise e return {'status': 'OK'}