"""Config file for copy-assets-to-asheville Lambda.""" import os import uuid from logging import INFO from lambdacommon import util from lambdacommon.graphql.graphql import GraphQLConnector from owslogger import logger from secrets_manager.lambda_ext import LambdaSecretsManager from sentry_sdk.integrations.logging import LoggingIntegration from constants import constants util.init_sentry_for_lambda() DEV_ENVIRONMENT = 'dev' PROD_ENVIRONMENT = 'prod' ENVIRONMENT = os.environ.get('Environment', DEV_ENVIRONMENT) SERVICE_NAME = 'ddex-ingester' LAMBDA_NAME = f'{SERVICE_NAME}-copy-assets-to-asheville' GRAPHQL_GATEWAY_URL = os.environ.get('GRAPHQL_GATEWAY_URL') OA_USER = os.environ.get('OA_USER') graphql_gateway = GraphQLConnector(GRAPHQL_GATEWAY_URL, LAMBDA_NAME) graphql_gateway.set_headers({'Orchard-User-Id': OA_USER}) # 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') PHYSICAL_LOCATION_ID = constants.QA_PHYSICAL_LOCATION_ID if ENVIRONMENT == PROD_ENVIRONMENT: PHYSICAL_LOCATION_ID = constants.PROD_PHYSICAL_LOCATION_ID 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())})