コンテンツにスキップ
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 GatewayFunction URLs
構成単純複雑単純
呼び出し複雑(SDK必要)単純単純
IAM認証必須任意任意
プロトコル独自HTTP/2HTTP/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)オプション必須