無限ノック › AIP 練習問題一覧 › 問題
AIP実装と統合

WebアプリケーションチームがAPI Gateway WebSocket API + Lambda + Amazon Bedrockでリアルタイムチャット機能を実装しています。ユーザーがメッセージを送信すると、Bedrockのレスポンスがトークンごとに逐次表示される体験(生成しながら表示するストリーミング)が必要です。Lambda関数内の実装として最も適切なアプローチはどれですか?

A
InvokeModel APIで完全なレスポンスを取得してからAPI Gateway Management APIでWebSocket接続に一括送信する
InvokeModel APIは完全なレスポンスを待機してから返すため、最初のトークン表示までの遅延が大きくなり、リアルタイムストリーミングには適していません。
B
ConverseStream API(またはInvokeModelWithResponseStream API)でストリーミング受信し、チャンクごとにAPI Gateway Management APIのPostToConnection操作でWebSocket接続に逐次送信する
✓ 正解
ConverseStream APIはイベントストリーム形式でレスポンスチャンクを順次返すため、Lambda内で処理しながらWebSocket経由でクライアントへ逐次送信でき、リアルタイムトークンストリーミングを実現します。
C
StartAsyncInvoke APIで非同期ジョブを起動し、S3にレスポンスが格納されたらEventBridgeでクライアントに通知する
StartAsyncInvoke APIは非同期バッチ処理用であり、リアルタイムストリーミング応答には向きません。S3への格納と通知の仕組みは遅延が大きすぎます。
D
Bedrock Agentsのストリーミングオプションを有効化し、WebSocket接続をAgentsに直接ルーティングする
Bedrock AgentsはAPI GatewayのWebSocket接続への直接ルーティングをサポートしておらず、Lambda等の仲介レイヤーが必須となるため、このアーキテクチャパターンは実現できません。

解説

リアルタイムトークンストリーミングには、LambdaでConverseStream(またはInvokeModelWithResponseStream)APIを使用します。このAPIはイベントストリーム形式でレスポンスチャンクを順次返すため、Lambda内でストリームを処理しながらAPI Gateway Management APIのPostToConnectionでWebSocketクライアントへ逐次送信できます。InvokeModelは完全レスポンスを待機するため最初のトークン表示までの遅延が大きく、StartAsyncInvokeは非同期バッチ処理用です。Bedrock AgentsはAPI GatewayのWebSocket接続への直接ルーティングをサポートしておらず、Lambda等の仲介レイヤーが必要なため、このアーキテクチャパターンは実現できません。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでAIPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← AIP の問題一覧に戻る