allow secrets set via env variable
Browse files
src/vsp/shared/aws_clients.py
CHANGED
|
@@ -12,11 +12,12 @@ from mypy_boto3_s3 import Client as S3Client
|
|
| 12 |
from mypy_boto3_ssm import Client as SSMClient
|
| 13 |
|
| 14 |
from vsp.shared import config, logger_factory
|
|
|
|
| 15 |
|
| 16 |
logger = logger_factory.get_logger(__name__)
|
| 17 |
|
| 18 |
-
USE_ENV_VAR_INSTEAD =
|
| 19 |
-
def path_to_env_var(path):
|
| 20 |
# Remove leading slash and replace other slashes with underscores
|
| 21 |
env_var = path.lstrip('/').replace('/', '_').upper()
|
| 22 |
return env_var
|
|
@@ -275,6 +276,15 @@ def fetch_from_parameter_store(parameter_name: str, is_secret: bool = False) ->
|
|
| 275 |
ParameterNotFoundError: If the parameter is not found.
|
| 276 |
ParameterStoreAccessError: If there's an error accessing the Parameter Store.
|
| 277 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 278 |
logger.info("Fetching parameter from Parameter Store", parameter=parameter_name)
|
| 279 |
ssm_client = get_ssm_client()
|
| 280 |
try:
|
|
|
|
| 12 |
from mypy_boto3_ssm import Client as SSMClient
|
| 13 |
|
| 14 |
from vsp.shared import config, logger_factory
|
| 15 |
+
import os
|
| 16 |
|
| 17 |
logger = logger_factory.get_logger(__name__)
|
| 18 |
|
| 19 |
+
USE_ENV_VAR_INSTEAD = True
|
| 20 |
+
def path_to_env_var(path: str):
|
| 21 |
# Remove leading slash and replace other slashes with underscores
|
| 22 |
env_var = path.lstrip('/').replace('/', '_').upper()
|
| 23 |
return env_var
|
|
|
|
| 276 |
ParameterNotFoundError: If the parameter is not found.
|
| 277 |
ParameterStoreAccessError: If there's an error accessing the Parameter Store.
|
| 278 |
"""
|
| 279 |
+
if USE_ENV_VAR_INSTEAD:
|
| 280 |
+
env_var_name = path_to_env_var(parameter_name)
|
| 281 |
+
logger.info("Fetching parameter from environment variable", parameter=env_var_name)
|
| 282 |
+
value = os.environ.get(env_var_name)
|
| 283 |
+
if value is None:
|
| 284 |
+
raise ParameterNotFoundError(f"Environment variable '{env_var_name}' not found")
|
| 285 |
+
return value
|
| 286 |
+
|
| 287 |
+
|
| 288 |
logger.info("Fetching parameter from Parameter Store", parameter=parameter_name)
|
| 289 |
ssm_client = get_ssm_client()
|
| 290 |
try:
|