動画の容量と保存 · 参考資料確認日 2026年9月22日
Cloud Runの32 MiB上限とend-to-end HTTP/2の条件
Cloud Runでは32 MiBの条件がrequestとresponseで異なります。requestはHTTP/1 serverか、responseはstreamingまたはTransfer-Encoding: chunkedを使うかを分け、clientからcontainerまでのprotocolも確認します。
requestとresponseでは32 MiBが適用される条件が違う
Cloud Runのmaximum HTTP/1 request sizeは、HTTP/1 serverを使う場合に32 MiBです。HTTP/2 serverにはこのspecific request-size limitがありません。一方、maximum HTTP/1 response sizeの32 MiBは、Transfer-Encoding: chunkedもstreamingも使わないresponseに適用されます。
そのため、requestが32 MiBで止まる問題と、non-streaming・non-chunked responseが32 MiBで止まる問題は別に診断します。streamingやchunkedに変えてCloud Runのspecific response conditionから外れても、application framework、proxy、client、downstreamの別上限までなくなるとは限りません。
clientのHTTP/2だけではrequest側の条件は変わらない
Cloud Runはnative gRPC trafficを除き、通常は受けたHTTP/2 requestをcontainerへ渡す前にHTTP/1へdowngradeします。HTTP/1 requestの32 MiBを超えるためにHTTP/2 serverを使う場合は、serviceでend-to-end HTTP/2を有効にし、containerまでHTTP/2で受ける必要があります。
GoogleのfrontendがTLSを終端するため、containerはTLS付きHTTP/2ではなくh2cをsupportして待ち受けます。これはrequest側のprotocol条件です。response側ではstreamingまたはTransfer-Encoding: chunkedの有無を別に確認し、二つの経路を一つの「HTTP/2なら無制限」という説明へまとめません。
失敗方向と転送方式を確認してから経路を変える
まず32 MiBを超えるのがrequestかresponseかを確認します。requestならCloud Runのend-to-end HTTP/2設定、containerのh2c対応、実際のcontainer portを点検します。responseならstreamingまたはTransfer-Encoding: chunkedを使っているかを確認してください。
該当する方式を安全に使えない場合はpayloadを分割するか、object storageへ置いて参照だけを渡します。変更後もapplication logとclient側の結果を確認し、Cloud Run以外のサービスの制限を別に調べます。
参考資料
- Cloud Run quotas
https://docs.cloud.google.com/run/quotas
確認日:2026-09-22
- Cloud Run end-to-end HTTP/2
https://docs.cloud.google.com/run/docs/configuring/http2
確認日:2026-09-22