GEMINI LABEN
FLASH35 — Gemini 3.5 Flashが一般提供となり、gemini-flash-latestが指す実体になりました。日常的な生成を速く安価にこなせますAGENTS — Gemini APIのManaged Agentsがpublic previewに。Google管理の隔離Linuxサンドボックスで自律的なエージェントを構築できますMEDIA — Nano Banana 2 Lite(画像)とGemini Omni Flash(動画・会話的編集)がAI Studio・API・Enterprise Agent Platformで利用可能にTTS — gemini-3.1-flash-tts-previewの音声生成がstreamGenerateContent経由でストリーミング対応になりましたTRANSLATE — 新しい音声モデルが70以上の言語を自動判別し、話者の自然な抑揚を保ったままライブ音声翻訳を行いますSPENDCAP — AI Studioにプロジェクト単位の費用上限が導入され、支出を安全側に抑えられるようになりましたFLASH35 — Gemini 3.5 Flashが一般提供となり、gemini-flash-latestが指す実体になりました。日常的な生成を速く安価にこなせますAGENTS — Gemini APIのManaged Agentsがpublic previewに。Google管理の隔離Linuxサンドボックスで自律的なエージェントを構築できますMEDIA — Nano Banana 2 Lite(画像)とGemini Omni Flash(動画・会話的編集)がAI Studio・API・Enterprise Agent Platformで利用可能にTTS — gemini-3.1-flash-tts-previewの音声生成がstreamGenerateContent経由でストリーミング対応になりましたTRANSLATE — 新しい音声モデルが70以上の言語を自動判別し、話者の自然な抑揚を保ったままライブ音声翻訳を行いますSPENDCAP — AI Studioにプロジェクト単位の費用上限が導入され、支出を安全側に抑えられるようになりました
記事一覧/API / SDK
API / SDK/2026-06-24上級

Gemini API を Edge に載せると subrequest 上限で静かに落ちる — 残量を計装して守る運用メモ

Gemini API を Cloudflare Workers で運用していると、平常時は問題ないのに負荷やツール連鎖が深まった瞬間だけ subrequest 上限で落ちます。残量をリクエスト単位で計測し、予算として守るための計装パターンと実装を、個人開発で運用しているサイト群の知見からまとめます。

gemini-api276cloudflare-workers7edge-runtimesubrequestobservability11

プレミアム記事

本番に出してしばらく安定していた Gemini API のエンドポイントが、ある日のアクセス増加の時間帯だけ「Too many subrequests」を返し始める。ログを見ても Gemini への呼び出しは普段どおり1回。けれど Workers のサブリクエスト計上は 50 を超えている——個人開発で運用しているサイト群を Cloudflare Workers に寄せたあと、私はこの「平常時は見えない上限」に二度刺されました。一度目は原因に半日、二度目は計装が効いて 5 分でした。差を分けたのは、subrequest を「エラーが出たら直すもの」ではなく「リクエストごとに残量を持つ予算」として扱えていたかどうかです。

この記事は、その予算という見方を実装に落とすための運用メモです。閾値の数字を覚えるより、自分のアプリが1リクエストで実際に何件消費しているかを測れる状態を先に作るほうが、長く効きます。

なぜローカルでは絶対に出ないのか

Cloudflare Workers は、1つのリクエスト処理の中で外部へ発行できる接続(fetch、Cache API、KV、D1、R2、Durable Objects への到達など)の総数に上限を持ちます。執筆時点で Free は 50、Workers Standard は 1,000 です。Gemini API への呼び出しも、当然このうちの1件として数えられます。

つまずきやすいのは、自分が明示的に書いた fetch 以外も計上される点です。Next.js を Workers 上で動かしていれば、キャッシュミス時の ASSETS 取得がサブリクエストになります。ミドルウェアでアクセスログを外部に飛ばしていれば、それも毎回1件です。Gemini を1回叩いているつもりでも、フレームワークと周辺処理が裏で 20〜30 件を黙って積み上げていることは珍しくありません。

ローカルの開発サーバーはこの上限を持たないため、wrangler dev でも再現しません。本番相当で観測するには wrangler dev --remote、稼働中の実トラフィックを見るには wrangler tail が要ります。診断はここを整えるところから始めます。

推測でモデルを変える前に、残量を数える

エラーを見ると、まずモデルを軽いものに替えたくなります。けれど subrequest 上限はモデルの重さとは無関係です。最初にやるべきは、1リクエストが実際に何件消費しているかを数値で掴むこと。wrangler tail を開いて実トラフィックを流し、1操作あたりの外向き接続数を観察します。「自分のコードは1回しか fetch していないはずなのに 25 件出ている」というギャップに、ここで初めて気づけます。

数えるべき発生源は、私の経験では次の3つに集約されます。

ひとつ目は Function Calling の連鎖深度です。モデルがツールを呼び、その結果を受けてまた別のツールを呼ぶたびに、新しい往復が1件ずつ積まれます。深さ5の連鎖なら、ツール実行の外部 API も合わせて二桁に届きます。ふたつ目は SDK の自動リトライ。@google/genai は 429 や 503 を受けると静かに再試行するので、ユーザーから見える1リクエストの内側で3回ぶんが計上されることがあります。みっつ目は、ログ・メトリクス・設定取得のような「小さくて気づきにくい」毎リクエストの送信です。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
1リクエストが消費する subrequest を実測し、予算として可視化する BudgetedFetch ラッパーの実装
Function Calling の連鎖・SDK 自動リトライ・ログ送信が水面下で消費する分を切り分ける診断手順
上限に当たる前に劣化させる(degrade gracefully)ための予算配分と waitUntil バッチ化の設計
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API / SDK2026-07-04
Gemini API の英語出力に日本語が『たまに』混ざるとき — 混入率を計測して段階的に締める運用メモ
英語出力を指示したGemini APIが、100回に数回だけ日本語を混ぜてくる——この『たまに』を止められない本当の理由と、混入率をSLOとして計測し、段階的リカバリで本番品質まで締める運用パターンを実装コード付きで整理します。
API / SDK2026-06-30
散らばった呼び出し口を一つに畳む — Interactions API を自動運用の正面玄関にする移行設計
Interactions API の一般提供で、Gemini の呼び出しが一つの入り口に寄せられるようになりました。generateContent・Batch・自前エージェントループに散らばった呼び出し口を、壊さずに正面玄関へ畳んでいく移行設計を、薄いアダプタ層の実装とともに整理します。
API / SDK2026-06-26
Gemini API のセーフティフィルタが正当な応答を黙って落とすとき — 全切りせず誤検知だけを救う運用メモ
本番のGemini APIで正当なプロンプトがSAFETYでブロックされる誤検知を、全カテゴリ無効化に逃げずに扱う運用メモ。入力ブロックと出力ブロックの切り分け、誤検知率の計装、カテゴリ別の段階的リカバリまでを実装で整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →