"""Configuration for Throttler lambda.""" import os from logging import INFO from secrets_manager.lambda_ext import LambdaSecretsManager import sentry_sdk from sentry_sdk.integrations.aws_lambda import AwsLambdaIntegration from sentry_sdk.integrations.logging import LoggingIntegration # Environment setup DEV_ENVIRONMENT = 'dev' QA_ENVIRONMENT = 'qa' PROD_ENVIRONMENT = 'prod' TEST_ENVIRONMENT = 'test' ENVIRONMENT = os.environ.get('Environment') ENVIRONMENTS = [ TEST_ENVIRONMENT, DEV_ENVIRONMENT, QA_ENVIRONMENT, PROD_ENVIRONMENT] if ENVIRONMENT not in ENVIRONMENTS: raise Exception('Invalid environment. Valid options are " . \ "dev, qa, prod, or test.') # AWS region configuration DEFAULT_AWS_REGION = 'us-east-1' AWS_REGION = os.environ.get('AWS_REGION', DEFAULT_AWS_REGION) # Logging LOGGER_LEVEL = os.environ.get('LOGGER_LEVEL', INFO) # Sentry Config SENTRY_DSN = os.environ.get('SENTRY_DSN') or None if SENTRY_DSN: sentry_sdk.init( dsn=SENTRY_DSN, environment=ENVIRONMENT, integrations=[ LoggingIntegration( level=LOGGER_LEVEL, event_level=None # Don't send error log as sentry event. ), AwsLambdaIntegration() ]) # Name of lambda APPLICATION_NAME = 'lambda-vector' LAMBDA_NAME = f'{APPLICATION_NAME}-throttler' datadog_secrets_manager_client = LambdaSecretsManager( environment=ENVIRONMENT, service_name='datadog') DATADOG_API_KEY = datadog_secrets_manager_client.get_cred('DD_API_KEY') DATADOG_APP_KEY = datadog_secrets_manager_client.get_cred('DD_APP_KEY') secrets_manager_client = LambdaSecretsManager( environment=ENVIRONMENT, service_name=LAMBDA_NAME) DD_MYSQL_USER = os.environ.get('DD_MYSQL_USER') DD_MYSQL_PASSWORD = secrets_manager_client.get_cred('DD_MYSQL_PASSWORD') DD_MYSQL_HOST = os.environ.get('DD_MYSQL_HOST') DD_MYSQL_PORT = int(os.environ.get('DD_MYSQL_PORT', 3306)) DD_MYSQL_DATABASE = os.environ.get('DD_MYSQL_DATABASE') DD_MYSQL_CONN_INFO = { 'user': DD_MYSQL_USER, 'password': DD_MYSQL_PASSWORD, 'host': DD_MYSQL_HOST, 'port': DD_MYSQL_PORT, 'database': DD_MYSQL_DATABASE, 'connect_timeout': 15 } RO_DD_MYSQL_USER = os.environ.get('RO_DD_MYSQL_USER') RO_DD_MYSQL_PASSWORD = secrets_manager_client.get_cred('RO_DD_MYSQL_PASSWORD') RO_DD_MYSQL_HOST = os.environ.get('RO_DD_MYSQL_HOST') RO_DD_MYSQL_PORT = int(os.environ.get('DD_MYSQL_PORT', 3306)) RO_DD_MYSQL_DATABASE = os.environ.get('RO_DD_MYSQL_DATABASE') RO_DD_MYSQL_CONN_INFO = { 'user': RO_DD_MYSQL_USER, 'password': RO_DD_MYSQL_PASSWORD, 'host': RO_DD_MYSQL_HOST, 'port': RO_DD_MYSQL_PORT, 'database': RO_DD_MYSQL_DATABASE, 'connect_timeout': 15 }