"""Config file for lambda function.""" import os from opensearchpy.exceptions import OpenSearchException from secrets_manager.lambda_ext import LambdaSecretsManager APPLICATION_NAME = "lambda-content-ar-search-ingest" # AWS region configuration DEFAULT_AWS_REGION = "us-east-1" AWS_REGION = os.environ.get("AWS_REGION", DEFAULT_AWS_REGION) # Environment setup QA_ENVIRONMENT = "qa" PROD_ENVIRONMENT = "prod" ENVIRONMENT = os.environ.get("ENVIRONMENT", QA_ENVIRONMENT) # Opensearch config. OPENSEARCH_HOST = os.environ.get("OPENSEARCH_HOST") OPENSEARCH_PORT = int(os.environ.get("OPENSEARCH_PORT", 443)) if not OPENSEARCH_HOST or not OPENSEARCH_PORT: raise OpenSearchException("OPENSEARCH_HOST details missing") # the number of connections kept open to this host. Default is no pooling. pool_maxsize = os.environ.get("OPENSEARCH_POOL_MAXSIZE") OPENSEARCH_POOL_MAXSIZE = int(pool_maxsize) if pool_maxsize else None # Default request timeout in seconds. OPENSEARCH_DEFAULT_TIMEOUT = float(os.environ.get("OPENSEARCH_DEFAULT_TIMEOUT") or 60) OPENSEARCH_USER = os.environ.get("OPENSEARCH_USER") secrets_manager_client = LambdaSecretsManager( environment=ENVIRONMENT, service_name=APPLICATION_NAME ) OPENSEARCH_PASSWORD = secrets_manager_client.get_cred("OPENSEARCH_PASSWORD") if not OPENSEARCH_USER or not OPENSEARCH_PASSWORD: raise OpenSearchException("OPENSEARCH credentials missing") OPENSEARCH_MAX_BULK_RETRIES = 3 PRODUCT_INDEX_NAME = os.environ.get("PRODUCT_INDEX_NAME", "product_write") TRACK_INDEX_NAME = os.environ.get("TRACK_INDEX_NAME", "track_write") PROJECT_INDEX_NAME = os.environ.get("PROJECT_INDEX_NAME", "project_write")