in notebooks/util/project.py [0:0]
def __init__(self, project_id: str):
"""Create a ProjectSession
Parameters
----------
project_id :
ProjectId from the provisioned OCR pipeline stack
"""
self.project_id = project_id
# Load SSM names for dynamic/configuration parameters:
for param_suffix, session_attr in self.DYNAMIC_PARAM_NAMES.items():
setattr(self, session_attr, f"{self.SSM_PREFIX}/{project_id}/{param_suffix}")
# Load SSM *values* for static project attributes:
param_names_to_config_attrs = {
f"{self.SSM_PREFIX}/{project_id}/{s}": self.STATIC_PARAMS[s] for s in self.STATIC_PARAMS
}
response = ssm.get_parameters(Names=[s for s in param_names_to_config_attrs])
n_invalid = len(response.get("InvalidParameters", []))
if n_invalid == len(param_names_to_config_attrs):
raise ValueError(f"Found no valid SSM parameters for /{project_id}: Invalid project ID")
elif n_invalid > 0:
logger.warning(
" ".join(
[
f"{n_invalid} Project parameters missing from SSM: Some functionality ",
f"may not work as expected. Missing: {response['InvalidParameters']}",
]
)
)
for param in response["Parameters"]:
param_name = param["Name"]
setattr(self, param_names_to_config_attrs[param_name], param["Value"])