AgentCore RuntimeのInvokeAgentRuntimeCommandはStatelessと書いてあるがファイルシステムは同一セッション内で永続化する
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だった。
