Dev Classmethod Jp Lambda Response Streaming
Lambda でレスポンスストリーミングをする
- URL: https://dev.classmethod.jp/articles/lambda-response-streaming/
- 日付: 2026-06-11
- Tier: Tier 2
- 要旨: Lambda AIバックエンドにおけるTTFB改善のため、レスポンスストリーミング3方式(InvokeWithResponseStream・API Gateway・Function URLs)の実装方法と違いをCDK v2コードサンプルつきで解説。
詳細
3方式の比較:
| 項目 | 直接実行 | API Gateway | Function URLs |
|---|---|---|---|
| 構成 | 単純 | 複雑 | 単純 |
| 呼び出し | 複雑(SDK必要) | 単純 | 単純 |
| IAM認証 | 必須 | 任意 | 任意 |
| プロトコル | 独自 | HTTP/2 | HTTP/1.1 |
ハマりポイント:
- Function URLsはHTTP/2非対応(HTTP/1.1 + Transfer-Encoding: chunked)
- API GatewayはHTTP/2対応(クライアントがHTTP/1.xなら自動フォールバック)
- Function URLsではContent-Typeヘッダが不正だとisBase64Encodedの判定が狂う
CDK設定の要点:
- API Gateway:
responseTransferMode: apigateway.ResponseTransferMode.STREAM+proxy: true - Function URLs:
invokeMode: lambda.InvokeMode.RESPONSE_STREAM - curl確認には
-N(--no-buffer)オプション必須