@shinyaz

AgentCore RuntimeのInvokeAgentRuntimeCommandはStatelessと書いてあるがファイルシステムは同一セッション内で永続化する

約1分

AgentCore RuntimeのInvokeAgentRuntimeCommandのドキュメントには "Stateless between commands: No shell history or environment persistence" と書かれている。これを見て各コマンドが完全に独立していると思い、ファイル受け渡しも&&チェーンが必要だと思っていた。ただしドキュメントには "Commands execute within the same container, filesystem" とも書かれている。

実際に/tmp/で試してみると、同一セッション内の別APIコールで作成したファイルが普通に読めた。

# APIコール1
run_command('/bin/bash -c "echo hello > /tmp/test.txt"')
 
# APIコール2(同一セッションID、別リクエスト)
run_command('/bin/bash -c "cat /tmp/test.txt"')
# → hello(ファイルが残っている)

セッションがmicroVM単位で管理されているため、bashプロセスは毎回新しくてもファイルシステムは同じものを見ている。逆に異なるセッションIDでは完全に隔離されており、前のセッションのファイルは一切見えなかった。

「Stateless」はシェルプロセス状態(ヒストリー、環境変数)に限った話で、ファイルシステムはstatefulだった。

共有する

田原 慎也

田原 慎也

ソリューションアーキテクト @ AWS

AWS ソリューションアーキテクトとして金融業界のお客様を中心に技術支援を行っています。クラウドアーキテクチャや AI/ML に関する学びをこのサイトで発信しています。このサイトの内容は個人の見解であり、所属企業の公式な意見や見解を代表するものではありません。