概要
Bedrock AgentCore SDK Python v0.1.7 は、AWS リージョンのバリデーション処理を改善する重要なバグ修正リリースです。デフォルト AWS リージョンとユーザーが指定した region_name パラメータが一致しない場合に発生していた ValidationException を修正し、より適切なエラーハンドリングを実現しました。
リリース: v0.1.7
バグ修正
AWS リージョン不一致による ValidationException を修正 (#102)
デフォルト AWS リージョンとユーザー指定の region_name が一致しない場合に、以下のようなエラーが発生していた問題を修正しました。
修正前に発生していたエラー:
ValueError: Region mismatch: provided region_name 'us-west-2' does not match boto3_session region 'us-east-1'.
Please ensure both parameters specify the same region or omit the region_name parameter to use the session's region.
主な修正内容:
-
リージョンバリデーションのタイミングを変更
- boto3 セッション作成前にリージョンバリデーションを実行するように変更
- セッション確立後の競合エラーを防止
-
セッションパラメータをオプショナルに変更
_validate_and_resolve_regionメソッドでOptional[boto3.Session]を受け入れるように変更- 必須パラメータから任意パラメータに変更することで、柔軟性が向上
-
バリデーションロジックの簡素化
- リージョン競合検出ロジックをより堅牢に改善
- エラーメッセージをより明確に
影響を受けるケース:
- AWS CLI や環境変数でデフォルトリージョンを設定している環境で、コード内で異なる
region_nameを指定した場合 - boto3 セッションを事前に作成し、異なるリージョンでメモリセッションを初期化しようとした場合
使用例:
import boto3
from bedrock_agentcore.memory import InMemorySession
# ケース 1: 環境変数のデフォルトリージョンと異なるリージョンを指定
# デフォルトが us-east-1 の環境で us-west-2 を指定
session = InMemorySession(
session_id="my-session",
region_name="us-west-2" # v0.1.7 で正しく動作するように修正
)
# ケース 2: 既存の boto3 セッションとは異なるリージョンを指定
boto3_session = boto3.Session(region_name="us-east-1")
session = InMemorySession(
session_id="my-session",
region_name="us-west-2", # v0.1.7 で適切にハンドリング
boto3_session=boto3_session
)
ポイント:
- この修正により、リージョン指定時のエラーハンドリングがより明確になり、デバッグしやすくなりました
- マルチリージョン環境での Bedrock AgentCore の使用がより安定します
- エラーメッセージが改善され、問題の原因が特定しやすくなりました
まとめ
v0.1.7 は、AWS リージョン設定に関する重要なバグ修正リリースです。デフォルトリージョンとユーザー指定リージョンの競合を適切にハンドリングすることで、マルチリージョン環境での安定性が向上しました。