次の方法で共有


エージェントを外部サービスに接続する

Important

この機能は パブリック プレビュー段階です

AI エージェントを、Slack、Google カレンダー、API を使用して任意のサービスなどの外部アプリケーションに接続します。 Azure Databricks には、外部サービスに MCP サーバーがあるかどうか、ユーザーごとの認証が必要かどうか、またはエージェント コードから API を直接呼び出すかどうかに応じて、いくつかの方法が用意されています。 すべての方法は、資格情報を安全に管理し、外部サービスへのアクセスを管理するために Unity カタログ HTTP 接続 に依存します。

方法 推奨されるユース ケース
外部 MCP サーバー MCP サーバーを発行するサービスには、この方法を使用します。 ツールの自動検出を提供し、標準 SDK と連携します。
マネージド OAuth このアプローチは、Google Drive または SharePoint の統合に使用します。 Azure Databricks は OAuth 資格情報を管理するため、アプリの登録は必要ありません。
UC 接続プロキシ 外部サービス独自のクライアント SDK を使用して、エージェント コードから REST API を直接呼び出すには、この方法を使用します。
UC 関数ツール この方法は、 http_request() 関数をラップする SQL ベースのツール定義に使用します。

Requirements

  • 外部アプリケーション用の Unity カタログHTTP 接続。 Unity カタログ接続は、セキュリティで保護された管理された資格情報管理を提供し、OAuth 2.0 ユーザーからマシンへの認証やマシン間認証など、複数の認証方法を有効にします。

外部 MCP サーバー

外部サービスに MCP サーバーが使用可能な場合、Azure Databricks では 外部 MCP サーバー経由で接続することをお勧めします。 MCP サーバーは、ツールの自動検出、簡素化された統合、およびユーザーごとの認証を提供します。 インストール方法、プログラムによる使用、認証の詳細については、 外部 MCP サーバー の使用に関するページを参照してください。

マネージド OAuth

Azure Databricks では、一部の API ツール プロバイダー用のマネージド OAuth フローが提供されます。 独自の OAuth アプリを登録したり、資格情報を管理したりする必要はありません。 Azure Databricks では、開発とテストにマネージド OAuth を推奨しています。 運用環境のユース ケースでカスタム OAuth 資格情報の生成が必要な場合は、プロバイダーのドキュメントを参照してください。

次の統合では、バックエンドに安全に格納されている Azure Databricks で管理される OAuth 資格情報が使用されます。

プロバイダー 構成に関する注意事項 サポートされているスコープ 説明
Google Drive API なし https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/documents.readonly https://www.googleapis.com/auth/spreadsheets.readonly offline_access Google ドライブ ファイルへの読み取り専用アクセス。
SharePoint API なし https://graph.microsoft.com/Sites.Read.All offline_access openid profile SharePoint サイトへの読み取り専用アクセス。

マネージド OAuth を設定するには、 OAuth ユーザーからマシンごとの 認証タイプへの HTTP 接続を作成し、 OAuth プロバイダー のドロップダウン メニューからプロバイダーを選択します。 詳細な手順については、 外部 MCP サーバーのインストールを参照してください。

各ユーザーは、初回使用時にプロバイダーに対して承認を求められます。

必要に応じて、マネージド OAuth で使用される次のリダイレクト URI を許可リストに登録します。

リダイレクト URI
AWS https://oregon.cloud.databricks.com/api/2.0/http/oauth/redirect
紺碧 https://westus.azuredatabricks.net/api/2.0/http/oauth/redirect
GCP https://us-central1.gcp.databricks.com/api/2.0/http/oauth/redirect

UC 接続プロキシ エンドポイント

外部サービス独自のクライアント SDK と 共に Unity カタログ接続プロキシ エンドポイント を使用して、エージェント コードから REST API を直接呼び出します。 SDK のベース URL をプロキシ エンドポイントにポイントし、API キーとして Azure Databricks トークンを使用します。 Azure Databricks は要求を認証し、Unity カタログ接続から外部サービスの資格情報を自動的に挿入します。 コードが外部サービスのトークンを直接処理することはありません。

必要なアクセス許可:USE CONNECTION 接続オブジェクトに対して

OpenAI

DatabricksOpenAIを使用して、Unity カタログ接続プロキシ経由で外部 OpenAI に呼び出しをルーティングします。 まず、 Databricks シークレットとして格納されている OpenAI API キーを使用して、Unity カタログ HTTP 接続を作成します。

CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
  host 'https://api.openai.com',
  base_path '/v1',
  bearer_token secret ('<secret-scope>', '<secret-key>')
);

次に、 databricks-openai パッケージをインストールし、エージェント コードでプロキシ URL とワークスペース クライアントを使用します。

pip install databricks-openai
from databricks_openai import DatabricksOpenAI
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

client = DatabricksOpenAI(
    workspace_client=w,
    base_url=f"{w.config.host}/api/2.0/unity-catalog/connections/openai_connection/proxy/",
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)

Slack

Unity カタログ接続プロキシ経由でルーティングするように Slack SDK を構成します。 ホスト https://slack.com とベース パス /apiを使用して Unity カタログ HTTP 接続を作成し、SDK のベース URL としてプロキシ URL を使用します。

from slack_sdk import WebClient
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

client = WebClient(
    token=w.config.authenticate()["Authorization"].split(" ")[1],
    base_url=f"{w.config.host}/api/2.0/unity-catalog/connections/slack_connection/proxy/",
)

result = client.chat_postMessage(channel="C123456", text="Hello from Databricks!")
print(result["message"]["text"])

汎用 HTTP

専用 SDK を使用しないサービスの場合は、プロキシ URL と共に requests ライブラリを直接使用します。

import requests
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

response = requests.post(
    f"{w.config.host}/api/2.0/unity-catalog/connections/my_connection/proxy/api/v1/resource",
    headers={
        **w.config.authenticate(),
        "Content-Type": "application/json",
    },
    json={"key": "value"},
)

HTTP 接続を使用した UC 関数ツール

Note

Azure Databricks では、新しい統合に MCP サーバーまたは UC 接続プロキシ を使用することをお勧めします。 http_requestを備えた UC 関数ツールは引き続きサポートされますが、推奨されるアプローチではなくなりました。

外部サービスを呼び出す http_request() をラップする Unity Catalog 関数を作成できます。 この方法は、SQL ベースのツール定義に役立ちます。 UC 関数ツールの作成の詳細については、 Unity カタログ関数を使用した AI エージェント ツールの作成に関するページを参照してください。

次の例では、Slack にメッセージを投稿する Unity カタログ関数ツールを作成します。

CREATE OR REPLACE FUNCTION main.default.slack_post_message(
  text STRING COMMENT 'message content'
)
RETURNS STRING
COMMENT 'Sends a Slack message by passing in the message and returns the response received from the external service.'
RETURN (http_request(
  conn => 'test_sql_slack',
  method => 'POST',
  path => '/api/chat.postMessage',
  json => to_json(named_struct(
    'channel', "C032G2DAH3",
    'text', text
  ))
)).text

CREATE FUNCTION (SQL および Python)」をご覧ください。

Note

ユーザーからマシンまでのユーザー接続タイプでは、http_request を使用した SQL アクセスはブロックされます。 代わりに Python Azure Databricks SDK を使用してください。

ノートブックの例

エージェントを Slack に接続する

「AI エージェントを Slack に接続する」を参照してください。

エージェントをMicrosoft Teamsに接続する

AI エージェントをMicrosoft Teamsに接続するを参照してください。

外部接続ツール

次のノートブックでは、Slack、OpenAI、Azure AI 検索に接続する AI エージェント ツールを作成する方法を示します。

Slack メッセージング エージェント ツール

ノートブックを入手

Microsoft Graph API エージェント ツール

ノートブックを入手

Azure AI Search エージェント ツール

ノートブックを入手