"""Config file for sme-analytics-ingestion-flow-control script.""" from logging import INFO import os import uuid from lambdacommon import util from owslogger import logger from secrets_manager.lambda_ext import LambdaSecretsManager from sentry_sdk.integrations.logging import LoggingIntegration DEV_ENVIRONMENT = 'dev' ENVIRONMENT = os.environ.get('Environment', DEV_ENVIRONMENT) # Application Metadata SERVICE_NAME = 'ddex-ingester' LAMBDA_NAME = f'{SERVICE_NAME}-sme-analytics-ingestion-flow-control' # Logger DSN ---------------------------------------------------------------- LOGGER_LEVEL = os.environ.get('LOGGER_LEVEL', INFO) or None sentry_logging = LoggingIntegration(level=INFO, event_level=None) util.init_sentry_for_lambda(sentry_logging) # Global logger app_logger = util.setup_ows_logger( environment=ENVIRONMENT, logger_name=LAMBDA_NAME, logger_level=LOGGER_LEVEL, service_name=LAMBDA_NAME, service_version='1.0.0' ) secrets_manager_client = LambdaSecretsManager( environment=ENVIRONMENT, service_name=SERVICE_NAME) RDS_RW_USER = os.environ.get('RDS_RW_USER', 'ddex-ingester-RW') RDS_HOST = os.environ.get('RDS_HOST') RDS_DB_NAME = os.environ.get('RDS_DB_NAME') RDS_PASSWORD = os.environ.get('RDS_PASSWORD', secrets_manager_client.get_cred( 'rds_read_write_password')) # The input table for delivery sources. SME_ANALYTICS_SFN_ARN = os.environ.get('SME_ANALYTICS_SFN_ARN') def get_current_logger(correlation_id=None): """Get logger with a correlation_id attached. Args: correlation_id: correlation_id that will be sent along with log record Returns: logger.OwsLoggingAdapter: instance of OwsLoggingAdapter with correlation_id attached. """ return logger.OwsLoggingAdapter( app_logger, {'correlation_id': correlation_id or str(uuid.uuid4())})