以下の内容はhttps://blog.g-gen.co.jp/entry/how-to-deploy-adk-webui-on-cloudrunより取得しました。


ADKエージェントのWeb UIをCloud Runで公開する方法

記事タイトルとURLをコピーする

G-gen の堂原です。当記事では、Agent Development Kit(ADK)を使用して開発した AI エージェントの開発者用 Web UI を、Cloud Run へデプロイする方法を紹介します。

はじめに

Agent Development Kit

Agent Development Kit(ADK)は、Google によって開発された AI エージェント構築用のフレームワークです。ADK を使用することで、エージェントへの関数処理組み込みや外部ツールの利用、マルチエージェントの実装が行えます。

以下の記事カテゴリも参照してください。

blog.g-gen.co.jp

当記事について

ADK には、開発したエージェントをブラウザ上でテストするための、開発者用の Web UI 機能が備わっています。Web UI は、エージェントを開発しているローカル実行環境で adk web コマンドを実行することで起動できます。この Web UI は本来、開発者がローカル実行環境で使用することを想定しており、他人がアクセスすることは想定されていません。

当記事では、この Web UI をあえて Cloud Run(Cloud Run services)にデプロイして、外部からアクセス可能にします。PoC(概念実証)などの目的で複数人から AI エージェントを試用することが目的であり、一般ユーザーによる使用を想定したものではないことに注意して下さい。

ADK の Web UI

ディレクトリ構成とソースコード

当記事では、以下の記事で開発したエージェントを用います。

blog.g-gen.co.jp

ディレクトリ構成は以下の通りです。

parent/
└ get_current_time/
    ├ .env
    ├ agent.py
    └ __init__.py

agent.py は、前掲の記事のソースコードです。__init__.py は、以下の1行を記載します。

from . import agent

.env には、エージェントが呼び出すエンドポイントの情報を記載します。GOOGLE_GENAI_USE_VERTEXAI=TRUE とすることで Vertex AI 経由で Gemini API が呼び出されることになります(以下、Gemini API は Vertex AI 経由であることを前提とします)。

GOOGLE_GENAI_USE_VERTEXAI=TRUE
GOOGLE_CLOUD_PROJECT={Gemini APIの呼び出し先のGoogle CloudプロジェクトのID}
GOOGLE_CLOUD_LOCATION={Gemini APIの呼び出し先のリージョン}

Cloud Run へのデプロイ

デプロイコマンド

ADK には、エージェントを Cloud Run へデプロイする adk deploy cloud_run コマンドが用意されています。このコマンドを使用することで、Dockerfile の作成やイメージのビルド、Cloud Run へのデプロイを一括で実行できます。

基本的な構文は以下の通りです。

adk deploy cloud_run [OPTIONS] AGENT

AGENT には、エージェントのソースコードが格納されているフォルダへのパスを指定します。今回の場合においては、「parent」ディレクトリでコマンドを実行するのであれば get_current_time と指定します。

実行例

以下のシェルスクリプトを実行してデプロイします。環境変数には Cloud Run サービスをデプロイしたい Google Cloud プロジェクトの ID とリージョン、Cloud Run サービスに紐づけるサービスアカウントを設定してください。

export CLOUD_RUN_PROJECT={Cloud Runサービスをデプロイする Google CloudプロジェクトのID}
export CLOUD_RUN_LOCATION={Cloud Runサービスをデプロイするリージョン}
export CLOUD_RUN_SERVICE_ACCOUNT_EMAIL={Cloud Runサービスにアタッチするサービスアカウント}
  
adk deploy cloud_run \
  --project=$CLOUD_RUN_PROJECT \
  --region=$CLOUD_RUN_LOCATION \
  --service_name=adk-get-current-time \
  --with_ui \
  get_current_time \
  -- \
  --service-account=$CLOUD_RUN_SERVICE_ACCOUNT_EMAIL \
  --allow-unauthenticated

主要なオプションの詳細は以下の通りです。

  • --service_name : Cloud Runサービスのサービス名
  • --with_ui : Cloud Run サービス上で ADK の Web UI を起動させるために必要なフラグです
  • -- (get_current_time の後ろ) : この記号以降には、サービスアカウントの指定や未認証アクセスの許可(--allow-unauthenticated)など、Cloud Run サービスに関するオプションを記載します。gcloud run deploy コマンドにつけるオプションと同じとなります。

留意事項

Gemini モデルとリージョン

.env ファイルの GOOGLE_CLOUD_LOCATION で指定したリーションにおいて、エージェントが呼び出す Gemini モデルが公開されている必要があります。

2026年2月現在、東京リージョンを例に取ると、公開されているモデルは gemini-2.5-flashgemini-2.5-pro などです。

gemini-3-flash-preview などの最新モデルを利用したい場合は、.env ファイルに GOOGLE_CLOUD_LOCATION=global と記述する必要があります。最新モデルは各個別リージョンではなく global ロケーションのみで公開される傾向があります。

どのロケーションでどのモデルが公開されているかについては、以下の公式ドキュメントを参照してください。最新情報を得るためには、ドキュメントを英語版に切り替えて確認してください。

セッションの整合性

デプロイした Cloud Run サービスの Dockerfile を確認すると、Web UI の立ち上げコマンドは以下のようになっています。

CMD adk web --port=8000 --host=0.0.0.0 --session_service_uri=memory:// --artifact_service_uri=memory://     "/app/agents"

上記より、エージェントのセッション情報はコンテナのメモリ上で管理されます。そのため、以下の挙動が発生します。

  • 複数コンテナ時の挙動 : 複数のコンテナが稼働している場合、アクセスの度に見えるセッション情報が異なる、不安定な状態になります。
  • リビジョンの更新 : Cloud Run のリビジョンが新しくなると、セッションはリセットされます。

堂原 竜希(記事一覧)

クラウドソリューション部クラウドエクスプローラ課。2023年4月より、G-genにジョイン。

Google Cloud Partner Top Engineer 2023, 2024, 2025に選出 (2024年はRookie of the year、2025年はFellowにも選出)。休みの日はだいたいゲームをしているか、時々自転車で遠出をしています。




以上の内容はhttps://blog.g-gen.co.jp/entry/how-to-deploy-adk-webui-on-cloudrunより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14