GEMINI LABEN
ROBOTICS — 8月31日に停止した ER 1.6 preview には後継があります。Gemini Robotics ER 2 が公開プレビュー中で、通常版とストリーミング版の2種類が提供されていますVIDEO — ER 2 の成功・失敗判定は静止画ではなく生の映像フィード上で動きます。こぼれ・滑り・位置ずれのような、実行の途中で起きる失敗を捉えられる設計ですDEADLINE — 次の期限は9月30日、gemini-omni-flash-preview の廃止です。移行先は8月27日に GA になった gemini-omni-1.1-flash で、残り4週間を切りましたAPIKEY — 残りの標準 API キーは、制限付きのものも含めて9月中に全面停止します。移行先は Google Cloud サービスアカウントに紐付く auth キー形式ですPRICE — Gemini 3.7 Flash の導入価格 $0.75/$3.75 per 1M は12月31日までです。2027年1月1日から $1.50/$7.50 になるため、年を跨ぐ見積もりは2本立てが要りますAUDIO — Gemini 3.5 Transcribe は85言語以上の言語検出、話者ダイアライゼーション、単語単位タイムスタンプ、最大1,000語のカスタム語彙バイアスに対応していますROBOTICS — 8月31日に停止した ER 1.6 preview には後継があります。Gemini Robotics ER 2 が公開プレビュー中で、通常版とストリーミング版の2種類が提供されていますVIDEO — ER 2 の成功・失敗判定は静止画ではなく生の映像フィード上で動きます。こぼれ・滑り・位置ずれのような、実行の途中で起きる失敗を捉えられる設計ですDEADLINE — 次の期限は9月30日、gemini-omni-flash-preview の廃止です。移行先は8月27日に GA になった gemini-omni-1.1-flash で、残り4週間を切りましたAPIKEY — 残りの標準 API キーは、制限付きのものも含めて9月中に全面停止します。移行先は Google Cloud サービスアカウントに紐付く auth キー形式ですPRICE — Gemini 3.7 Flash の導入価格 $0.75/$3.75 per 1M は12月31日までです。2027年1月1日から $1.50/$7.50 になるため、年を跨ぐ見積もりは2本立てが要りますAUDIO — Gemini 3.5 Transcribe は85言語以上の言語検出、話者ダイアライゼーション、単語単位タイムスタンプ、最大1,000語のカスタム語彙バイアスに対応しています
記事一覧/API / SDK
API / SDK/2026-05-21上級

Gemini API × Cloud Pub/Sub によるイベント駆動 AI ワークフロー設計 — 個人開発者の実装メモ

Gemini API を Cloud Pub/Sub のイベント駆動型ワークフローに組み込む実装メモ。アプリレビュー解析パイプラインを題材に、リトライ・デッドレター・冪等性・コスト管理までを個人開発の視点で整理しました。

Gemini API228Cloud Pub/SubCloud Run5イベント駆動2個人開発111本番運用49

プレミアム記事

ここ数ヶ月、6本の壁紙アプリを並行で改修している中で、「ユーザーレビューが届いたら、それを Gemini で分類・要約し、優先度の高いものだけ自分の Slack に流す」という地味な仕組みを作り直していました。最初は Cloud Functions の HTTP トリガーで雑に組んでいたのですが、メッセージの突発的なバーストや Gemini API の一時的なエラーで、何度か「届くべき分析結果が届かない」状態に陥りました。

落ち着いて見直してみると、結局のところ AI ワークフローというのは、外部から流れ込んでくるイベントを LLM で「人間に近い形で読み解いて」次のシステムに橋渡しする仕事だと感じます。そこで核に据えたのが Cloud Pub/Sub でした。ここでは、Gemini API を Cloud Pub/Sub のイベント駆動パイプラインに組み込む際に、私が個人開発の現場でつまずいて学び直したことを、コードと運用設計の両面から書き残しておきます。

なぜ Pub/Sub を AI ワークフローの中心に置くのか

私は 2014 年から個人で iOS / Android アプリを公開してきました。累計のダウンロード数は 5,000 万を超え、その中で「外部のイベントが、なだれのように同時に押し寄せる瞬間」を何度も経験してきました。広告ネットワークから配信レポートが届く時間帯、StoreKit の通知がまとめて届くタイミング、レビューが急に増える App Store のアップデート直後。こうした波を、サービスを止めずに受け止める仕組みは、個人開発でも避けて通れない設計です。

Cloud Pub/Sub は、メッセージの送信側と受信側を非同期に切り離し、配信を少なくとも 1 回保証する Google Cloud のマネージドサービスです。Gemini API のような外部呼び出しを伴うワークフローでは、この「非同期と再送の責任を Google 側に寄せられる」という性質がとても効きます。

  • 送信側(Publisher)は「イベントが発生した」事実だけを投げ込めばよい
  • 受信側(Subscriber)は自分の処理可能なペースでメッセージを引き取れる
  • 失敗時の再配信、デッドレター退避、順序制御を、サブスクリプション設定で宣言的に扱える

Gemini API は、生成タスクによっては 1 回数百ミリ秒から数秒の応答時間を必要とします。Pub/Sub を経由しておくことで、突発的に 100 件のイベントが流れ込んできても、サブスクライバー側のレート制御で着実にさばけるようになります。「すぐに返事できなくてもよい AI 処理」は、ほぼすべて Pub/Sub の上に乗せられると考えてよさそうです。

レビュー解析パイプラインの全体像

具体的なイメージを掴むために、私が実際に運用している「App Store / Google Play のレビュー解析パイプライン」を題材にします。構成はおおむね次のとおりです。

  1. App Store Connect / Google Play Developer API から定期的にレビューを取得する Cloud Run Job
  2. 新しいレビューを 1 件ずつ app-reviews トピックに publish
  3. app-reviews サブスクリプションに紐づく Cloud Run サービスが、Gemini API を呼んで分類・要約・優先度判定
  4. 結果を Firestore に保存し、優先度が高いものだけ別トピック priority-alerts に publish
  5. priority-alerts を受け取ったハンドラが Slack の DM に通知

このうち AI が顔を出すのは 3 番目の段階だけです。残りは Pub/Sub と Cloud Run の組み合わせで素直に書けます。ポイントは、AI 呼び出しを 1 メッセージ 1 推論に分解しておくことです。バッチで 50 件まとめて投げるよりも、結果としてリトライしやすく、コストも見積もりやすくなります。

[Reviews fetcher (Cloud Run Job)]
        │ publish

[app-reviews topic] ──► [Cloud Run service: classifier]
                                   │ (Gemini API)

                          [Firestore: review_analyses]
                                   │ publish (high priority only)

                       [priority-alerts topic] ──► [Slack notifier]


                       [dead-letter topic: review-dlq]

このワークフローを設計するうえで、私は以下の三点を最初に決めました。

  • どのサブスクリプションを Push 型にして、どれを Pull 型にするか
  • メッセージの順序が必要か、それともユーザー単位で並列に処理してよいか
  • リトライをどこで諦めて、デッドレタートピックに退避させるか

これらの判断軸は、Gemini に限らず外部 API を呼ぶ Pub/Sub ワークフローで共通です。

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

この記事の続きを読む

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

この記事で得られること
Pub/Sub から Gemini を呼ぶ Push 型・Pull 型サブスクライバーの選び方と、それぞれの落とし穴を実装コードで示します
推論失敗をデッドレタートピックに退避させ、サイレントな品質低下を起こさないリトライ設計を提示します
Gemini 呼び出しの冪等性確保、メッセージ重複排除、コスト上限ガードまでをひとまとめの設計として整理します
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

API / SDK2026-06-03
Gemini Files API の孤児ファイルを棚卸しする — 多アプリ運用の照合と自動クリーンアップ設計
Files API にアップロードしたファイルは48時間で静かに消えます。多アプリ運用で発生する孤児ファイルとクォータ消費を、自前DBとの照合と定期クリーンアップで統制する本番設計を、壁紙アプリ運営の実装メモとしてまとめました。
API / SDK2026-05-04
Gemini API のコールドスタート 6 秒問題を解決する — Cloud Run・Lambda・Workers の起動最適化設計
Gemini API をサーバレスで動かしたときの最初の1リクエストだけ6秒という体感問題を、Cloud Run・AWS Lambda・Cloudflare Workers それぞれの起動最適化パターンで解決します。実測値・コード例・コスト判断軸まで踏み込んで解説します。
API / SDK2026-08-27
temperature が効いているかを測るより渡した値を記録する方が先です
非推奨になったサンプリングパラメータは 200 が返るまま無視されます。grep と AST が取りこぼした箇所を実行時に拾い、設定の組み立て元まで記録して CI の合否に変えるまでを、実際に動かした結果とともにまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →