diff --git a/bin/dockerize b/bin/dockerize index d5fd748f6..a8f465360 100755 --- a/bin/dockerize +++ b/bin/dockerize @@ -4,7 +4,6 @@ AWS_REGION=${region:-eu-west-1} AWS_DEPLOYMENT_ACCOUNT=${account:-463722570299} AWS_REPOSITORY=${repo:-"${AWS_DEPLOYMENT_ACCOUNT}.dkr.ecr.${AWS_REGION}.amazonaws.com"} - STAGE=${stage:-"dev"} SHA_SHORT="$(git rev-parse --short HEAD)" CUR_DATE="$(date +%Y%m%d%H%M%S)" diff --git a/level_2/entrypoint.sh b/level_2/entrypoint.sh index e711b832f..6eabf9c7c 100755 --- a/level_2/entrypoint.sh +++ b/level_2/entrypoint.sh @@ -1,6 +1,6 @@ #!/bin/bash export ENVIRONMENT -#python fetch_secret.py +python fetch_secret.py # Start Gunicorn gunicorn -w 2 -k uvicorn.workers.UvicornWorker -t 120 --bind=0.0.0.0:8000 --bind=0.0.0.0:443 --log-level debug api:app \ No newline at end of file diff --git a/level_2/fetch_secret.py b/level_2/fetch_secret.py new file mode 100644 index 000000000..6c422d1af --- /dev/null +++ b/level_2/fetch_secret.py @@ -0,0 +1,75 @@ +import os +from dotenv import load_dotenv +from api import start_api_server + +# API_ENABLED = os.environ.get("API_ENABLED", "False").lower() == "true" +import boto3 + +environment = os.getenv("AWS_ENV", "dev") + + + +def fetch_secret(secret_name, region_name, env_file_path): + session = boto3.session.Session() + client = session.client(service_name="secretsmanager", region_name=region_name) + + try: + response = client.get_secret_value(SecretId=secret_name) + except Exception as e: + print(f"Error retrieving secret: {e}") + return None + + if "SecretString" in response: + secret = response["SecretString"] + else: + secret = response["SecretBinary"] + + with open(env_file_path, "w") as env_file: + env_file.write(secret) + + if os.path.exists(env_file_path): + print(f"The .env file is located at: {os.path.abspath(env_file_path)}") + load_dotenv() + PINECONE_API_KEY = os.getenv("PINECONE_API_KEY", "") + + print("LEN OF PINECONE_API_KEY", len(PINECONE_API_KEY)) + else: + print("The .env file was not found.") + return "Success in loading env files" + + +env_file = ".env" +if os.path.exists(env_file): + # Load default environment variables (.env) + load_dotenv() + print("Talk to the AI!") + + +else: + secrets = fetch_secret( + f"promethai-{environment}-backend-secretso-promethaijs-dotenv", + "eu-west-1", + ".env", + ) + if secrets: + print(secrets) + load_dotenv() + + +# Check if "dev" is present in the task ARN +if "dev" in environment: + # Fetch the secret + secrets = fetch_secret( + f"promethai-dev-backend-secretso-promethaijs-dotenv", + "eu-west-1", + ".env", + ) + load_dotenv() +elif "prd" in environment: + # Fetch the secret + secrets = fetch_secret( + f"promethai-prd-backend-secretso-promethaijs-dotenv", + "eu-west-1", + ".env", + ) + load_dotenv()