Google Cloud の API Gateway は、トークン逐次出力や双方向セッション向けのストリームを Public Preview で扱える。ストリーム用に別経路を切り、認証や API キー、ログをゲートウェイ外に逃がしていた構成を、同一 OpenAPI 記述のまま寄せ直せる。

対応パターン:

  • Server-Sent Events(SSE)
  • HTTP/1.1 チャンク転送および HTTP/2 上の段階的レスポンス(NDJSON 等)
  • WebSocket
  • gRPC のサーバーストリームおよび双方向ストリーム

ストリームは最大 3,600 秒まで。長時間接続はクライアント側の再接続を前提にする。

OpenAPI 側にストリーミング専用の拡張や別スペックは不要。API キー強制、Firebase / Auth0 / Okta / Google ID トークン等の JWT 検証、バックエンド向けサービスアカウント認証、Cloud Logging / Cloud Monitoring、パステンプレートとルーティングは従来どおり。

有効化はゲートウェイ作成時のみ。gcloud api-gateway gateways create に --enable-streaming を付ける。ストリーミングモードは作成後に変更できない。既存ゲートウェイをその場で切り替える手段はない。

plaintext
gcloud api-gateway gateways create GATEWAY_ID \
  --api=API_ID \
  --api-config=CONFIG_ID \
  --location=REGION \
  --enable-streaming

GA 時点では opt-in なしの既定動作を予定。API 設定の変更は Preview 時と同様不要。

バックエンド向け x-google-backend.deadline はストリーム全体またはメッセージ間アイドル(プロトコル依存)を秒単位で上限づける。既定 15 秒は多くのストリームには短く、ストリーミング有効ゲートウェイでは最大 3,600 秒まで明示設定が必要。gRPC と WebSocket はバックエンド protocol をそれぞれ h2 と http/1.1 に合わせる。

既定ホスト名は GATEWAY_ID-PROJECT_NUMBER.REGION.gateway.dev の形で、作成前から URL をテンプレートできる。従来のランダムハッシュ付き gateway.dev ホスト名は廃止方向。

Public Preview 中の留意点:

  • ストリーミングはゲートウェイ新規作成時のみ。既存リソースのインプレース変換は不可
  • Serverless NEG 経由のカスタムドメイン、コンソールからの有効化、Terraform 対応は Preview 期間中に順次
  • レイテンシメトリクスはストリーム存続時間を反映し、time-to-first-byte ではない

Model Router と組み合わせれば、OpenAI 互換エンドポイントから Gemini platform のモデルへ流しつつ、生成中のレスポンスをクライアントへ逐次返せる。

#参考文献