WebアプリケーションチームがAPI Gateway WebSocket API + Lambda + Amazon Bedrockでリアルタイムチャット機能を実装しています。ユーザーがメッセージを送信すると、Bedrockのレスポンスがトークンごとに逐次表示される体験(生成しながら表示するストリーミング)が必要です。Lambda関数内の実装として最も適切なアプローチはどれですか?
リアルタイムトークンストリーミングには、LambdaでConverseStream(またはInvokeModelWithResponseStream)APIを使用します。このAPIはイベントストリーム形式でレスポンスチャンクを順次返すため、Lambda内でストリームを処理しながらAPI Gateway Management APIのPostToConnectionでWebSocketクライアントへ逐次送信できます。InvokeModelは完全レスポンスを待機するため最初のトークン表示までの遅延が大きく、StartAsyncInvokeは非同期バッチ処理用です。Bedrock AgentsはAPI GatewayのWebSocket接続への直接ルーティングをサポートしておらず、Lambda等の仲介レイヤーが必要なため、このアーキテクチャパターンは実現できません。