Skip to content

Commit 66c8488

Browse files
authored
feat(memory): add boto3_session parameter to MemoryClient (#330)
Allow MemoryClient to accept an optional boto3.Session, consistent with MemorySessionManager. This enables named profiles, custom credentials, and other session-level configuration.
1 parent 18b428a commit 66c8488

2 files changed

Lines changed: 189 additions & 153 deletions

File tree

src/bedrock_agentcore/memory/client.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,17 +65,32 @@ class MemoryClient:
6565
"list_memory_strategies",
6666
}
6767

68-
def __init__(self, region_name: Optional[str] = None, integration_source: Optional[str] = None):
69-
"""Initialize the Memory client."""
70-
self.region_name = region_name or boto3.Session().region_name or "us-west-2"
68+
def __init__(
69+
self,
70+
region_name: Optional[str] = None,
71+
integration_source: Optional[str] = None,
72+
boto3_session: Optional[boto3.Session] = None,
73+
):
74+
"""Initialize the Memory client.
75+
76+
Args:
77+
region_name: AWS region name. If not provided, uses the session's region or "us-west-2".
78+
integration_source: Optional integration source for user-agent telemetry.
79+
boto3_session: Optional boto3 Session to use. If not provided, a default session
80+
is created. Useful for named profiles or custom credentials.
81+
"""
82+
session = boto3_session if boto3_session else boto3.Session()
83+
self.region_name = region_name or session.region_name or "us-west-2"
7184
self.integration_source = integration_source
7285

7386
# Build config with user-agent for telemetry
7487
user_agent_extra = build_user_agent_suffix(integration_source)
7588
client_config = Config(user_agent_extra=user_agent_extra)
7689

77-
self.gmcp_client = boto3.client("bedrock-agentcore-control", region_name=self.region_name, config=client_config)
78-
self.gmdp_client = boto3.client("bedrock-agentcore", region_name=self.region_name, config=client_config)
90+
self.gmcp_client = session.client(
91+
"bedrock-agentcore-control", region_name=self.region_name, config=client_config
92+
)
93+
self.gmdp_client = session.client("bedrock-agentcore", region_name=self.region_name, config=client_config)
7994

8095
logger.info(
8196
"Initialized MemoryClient for control plane: %s, data plane: %s",

0 commit comments

Comments
 (0)