Skip to content

Commit 95e9ad3

Browse files
author
“Sundar”
committed
remove environment variables from client
1 parent 4ddb7cd commit 95e9ad3

File tree

4 files changed

+34
-55
lines changed

4 files changed

+34
-55
lines changed

src/bedrock_agentcore/memory/client.py

Lines changed: 6 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
import copy
1212
import logging
13-
import os
1413
import time
1514
import uuid
1615
import warnings
@@ -39,39 +38,15 @@
3938
class MemoryClient:
4039
"""High-level Bedrock AgentCore Memory client with essential operations."""
4140

42-
def __init__(self, region_name: Optional[str] = None, environment: str = "prod"):
41+
def __init__(self, region_name: Optional[str] = None):
4342
"""Initialize the Memory client."""
44-
env_region = os.getenv("AWS_REGION")
45-
if region_name is not None and env_region is not None and env_region != region_name:
46-
warnings.warn(
47-
f"AWS_REGION environment variable ({env_region}) differs from provided "
48-
f"region_name ({region_name}). Using provided region_name.",
49-
stacklevel=2,
50-
)
51-
self.region_name = region_name
52-
else:
53-
self.region_name = region_name or env_region or boto3.Session().region_name or "us-west-2"
54-
self.environment = environment
55-
56-
self.control_plane_endpoint = os.getenv(
57-
"AGENTCORE_CONTROL_ENDPOINT", f"https://bedrock-agentcore-control.{self.region_name}.amazonaws.com"
58-
)
59-
self.data_plane_endpoint = os.getenv(
60-
"AGENTCORE_DATA_ENDPOINT", f"https://bedrock-agentcore.{self.region_name}.amazonaws.com"
61-
)
43+
self.gmcp_client = boto3.client("bedrock-agentcore-control", region_name=region_name)
44+
self.gmdp_client = boto3.client("bedrock-agentcore", region_name=region_name)
6245

63-
control_service = os.getenv("AGENTCORE_CONTROL_SERVICE", "bedrock-agentcore-control")
64-
data_service = os.getenv("AGENTCORE_DATA_SERVICE", "bedrock-agentcore")
65-
66-
self.gmcp_client = boto3.client(
67-
control_service, region_name=self.region_name, endpoint_url=self.control_plane_endpoint
68-
)
69-
70-
self.gmdp_client = boto3.client(
71-
data_service, region_name=self.region_name, endpoint_url=self.data_plane_endpoint
72-
)
46+
# Store the region that was actually used
47+
self.region_name = self.gmcp_client.meta.region_name
7348

74-
logger.info("Initialized MemoryClient for %s in %s", environment, region_name)
49+
logger.info("Initialized MemoryClient for %s", region_name)
7550

7651
def create_memory(
7752
self,

tests/bedrock_agentcore/memory/test_client.py

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,36 +14,40 @@
1414
def test_client_initialization():
1515
"""Test client initialization."""
1616
with patch("boto3.client") as mock_boto_client:
17-
# Test gamma environment
18-
client = MemoryClient(region_name="us-west-2", environment="gamma")
17+
# Setup the mock to return a consistent region_name
18+
mock_client_instance = MagicMock()
19+
mock_client_instance.meta.region_name = "us-west-2"
20+
mock_boto_client.return_value = mock_client_instance
1921

22+
client = MemoryClient(region_name="us-west-2")
23+
24+
# Check that the region was set correctly and boto3.client was called twice
2025
assert client.region_name == "us-west-2"
2126
assert mock_boto_client.call_count == 2
2227

2328

2429
def test_client_initialization_region_mismatch():
2530
"""Test client initialization with region mismatch warning."""
26-
with patch("boto3.client"):
27-
with patch("os.getenv") as mock_getenv:
28-
# Mock AWS_REGION environment variable
29-
mock_getenv.return_value = "us-east-1"
30-
31-
with warnings.catch_warnings(record=True) as w:
32-
warnings.simplefilter("always")
33-
34-
# Initialize client with different region than AWS_REGION
35-
client = MemoryClient(region_name="us-west-2", environment="prod")
3631

37-
# Verify warning was issued
38-
assert len(w) >= 1
39-
warning_messages = [str(warning.message) for warning in w]
40-
assert any(
41-
"AWS_REGION environment variable (us-east-1) differs from provided region_name (us-west-2)" in msg
42-
for msg in warning_messages
43-
)
44-
45-
# Verify client uses provided region_name, not environment variable
46-
assert client.region_name == "us-west-2"
32+
with patch("boto3.client") as mock_boto_client:
33+
# First mock a default region when none is specified
34+
mock_client_instance = MagicMock()
35+
mock_client_instance.meta.region_name = "us-east-1"
36+
mock_boto_client.return_value = mock_client_instance
37+
38+
# When region_name is not provided, it should use the boto3 default
39+
client1 = MemoryClient()
40+
assert client1.region_name == "us-east-1"
41+
42+
# Reset the mock to test with a specified region
43+
mock_boto_client.reset_mock()
44+
mock_client_instance = MagicMock()
45+
mock_client_instance.meta.region_name = "us-west-2"
46+
mock_boto_client.return_value = mock_client_instance
47+
48+
# When region_name is provided, it should use that value
49+
client2 = MemoryClient(region_name="us-west-2")
50+
assert client2.region_name == "us-west-2"
4751

4852

4953
def test_namespace_defaults():

tests_integ/memory/test_devex.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,7 @@ def main():
690690

691691
logger.info("Using region: %s, environment: %s", region, environment)
692692

693-
client = MemoryClient(region_name=region, environment=environment)
693+
client = MemoryClient(region_name=region)
694694

695695
logger.info("\nCreating test memory with strategies...")
696696
memory = client.create_memory(

tests_integ/memory/test_memory_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ def main():
348348

349349
logger.info("Using region: %s, environment: %s", region, environment)
350350

351-
client = MemoryClient(region_name=region, environment=environment)
351+
client = MemoryClient(region_name=region)
352352

353353
# Test Issue #2 first (strategy polling)
354354
test_strategy_polling_fix(client)

0 commit comments

Comments
 (0)