chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
"""
|
||||
SSM Parameter Store utilities for agent patterns.
|
||||
|
||||
Provides a single shared function for fetching parameters from AWS SSM
|
||||
Parameter Store, used by agents to retrieve configuration values like
|
||||
Gateway URLs that are set during deployment.
|
||||
"""
|
||||
|
||||
import logging
|
||||
import os
|
||||
|
||||
import boto3
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def get_ssm_parameter(parameter_name: str) -> str:
|
||||
"""
|
||||
Fetch a parameter value from AWS SSM Parameter Store.
|
||||
|
||||
SSM Parameter Store is AWS's service for storing configuration values
|
||||
securely. This function retrieves values like Gateway URLs and other
|
||||
stack-specific configuration that are set during CDK deployment.
|
||||
|
||||
Args:
|
||||
parameter_name (str): The full SSM parameter name/path
|
||||
(e.g. '/my-stack/gateway_url').
|
||||
|
||||
Returns:
|
||||
str: The parameter value.
|
||||
|
||||
Raises:
|
||||
ValueError: If the parameter is not found or cannot be retrieved.
|
||||
"""
|
||||
region = os.environ.get(
|
||||
"AWS_REGION", os.environ.get("AWS_DEFAULT_REGION", "us-east-1")
|
||||
)
|
||||
ssm = boto3.client("ssm", region_name=region)
|
||||
try:
|
||||
response = ssm.get_parameter(Name=parameter_name)
|
||||
return response["Parameter"]["Value"]
|
||||
except ssm.exceptions.ParameterNotFound:
|
||||
raise ValueError(f"SSM parameter not found: {parameter_name}")
|
||||
except Exception as e:
|
||||
raise ValueError(f"Failed to retrieve SSM parameter {parameter_name}: {e}")
|
||||
Reference in New Issue
Block a user