from elasticsearch import Elasticsearch, helpers import json import boto3 # type: ignore from utils.util import get_environment # type: ignore def get_secret(secret_name, region_name): session = boto3.session.Session() # type: ignore client = session.client( service_name='secretsmanager', region_name=region_name ) try: get_secret_value_response = client.get_secret_value( SecretId=secret_name ) return get_secret_value_response["SecretString"] except Exception as e: print(f"Error retrieving secret: {e}") raise e def get_elasticsearch_client(): environment = get_environment() if environment == "PROD": secret_name="prod_es_secrets" region_name="us-east-2" elif environment == "STAGING": secret_name = "staging_es_secrets" region_name="us-east-2" else: raise Exception("Invalid environment.") value = get_secret(secret_name, region_name) value = json.loads(value) host = value["host"] api_key = value["api_key"] return Elasticsearch( hosts=[host], api_key=api_key, )