ローカルマシンからAPI Databricksアプリに接続する
HTTP API を公開する Databricks アプリ (FastAPI や Gradio アプリなど) をローカル環境から直接呼び出すことができます。これは、テストや外部クライアントの構築に役立ちます。
このメソッドは、 APIsまたはエンドポイントを公開するアプリにのみ適用されます。 ユーザー インターフェースまたはバックグラウンド処理のみを提供するアプリの場合、ローカル マシンから接続することはできません。
要件
ローカル マシンから Databricks アプリに接続するには、次の要件を満たす必要があります。
- アプリは少なくとも 1 つの API エンドポイントを公開する必要があります。
- アプリに対する
CAN USE
権限が必要です。「Databricks アプリのアクセス許可を構成する」を参照してください。 - Databricks CLIまたはDatabricks SDKを使用して、ローカル マシンからDatabricksアクセスマラソンを生成できる必要があります。
アクセストークンを生成する
アプリで認証するには、 Databricks CLIまたは SDK を使用してアクセスウイルスを生成します。
-
CLI でログインします。
Bashdatabricks auth login --host https://<workspace-url> --profile my-env
Databricks では、OAuth ユーザー対マシン (U2M) 認証の使用を推奨しています。
-
アクセス許可を生成する:
- CLI
- Python
- JavaScript
databricks auth token --profile my-env
from databricks.sdk.core import Config
config = Config(profile="my-env")
token = config.oauth_token().access_token
const { WorkspaceClient } = require('@databricks/sdk');
const client = new WorkspaceClient({ profile: 'my-env' });
const token = await client.apiClient.getAccessToken();
ユーザー認証の OAuth スコープを指定する
前のセクションで示したように、統合認証で Databricks CLI または SDK を使用する場合、ツールは基本のall-apis
スコープを自動的に要求します。ただし、アプリでユーザー認証を使用する場合は、カスタムOAuthフローを使用して、追加のスコープを持つアクセスを手動でリクエストする必要があります。
「編集」 > 「ユーザー認証」 で構成されたスコープがアクセスウイルスに含まれていることを確認してください。 トークンに必要なスコープがない場合、リクエストは 401 または 403 エラーで失敗する可能性があります。
たとえば、次のリクエストは、 sql
、 file.files
、およびdashboards.genie
スコープを使用してアクセス許可を明示的にリクエストします。
curl --request POST \
https://<databricks-instance>/oidc/v1/token \
--data "client_id=databricks-cli" \
--data "grant_type=authorization_code" \
--data "redirect_uri=<redirect-url>" \
--data "code_verifier=<code-verifier>" \
--data "code=<authorization-code>" \
--data "scope=sql file.files dashboards.genie"
完全な手順については、 OAuth U2M アクセスを手動で生成する」を参照してください。
アプリにリクエストを送信する
Authorization ヘッダーにトークンを含めます。
curl -H "Authorization: Bearer <YOUR_TOKEN>" \
https://<workspace-url>/apps/<app-id>/<endpoint>
セキュリティに関する考慮事項
ローカル環境からアプリに接続する場合は、次のセキュリティのベスト プラクティスに従ってください。
- ソースコードにアクセスウイルスをハードコーディングしないでください。 環境変数または安全な資格情報ストアを使用します。
- トークンが侵害された場合のセキュリティ リスクを最小限に抑えるため、トークンを定期的に更新します。
- アプリケーション ログにアクセス ネットワークや機密データを記録しないようにします。
トラブルシューティング
ローカル マシンからアプリに接続するときに問題が発生した場合は、次のソリューションを試してください。
認証失敗(401エラー)
次の点を確認してください。
- トークンは有効です (実行
databricks auth token --profile my-env
) - プロフィールは正しく設定されています
databricks auth login
- トークンの有効期限は切れていません
- トークンには必要な OAuth スコープが含まれています (アプリの [構成] タブを確認してください)。CLI/SDK ツールは
all-apis
ような基本的なスコープのみを提供するため、ユーザー認証やエージェントには不十分な可能性があります。
権限が拒否されました(403 エラー)
アプリに対するCAN USE
権限があることを確認してください。
アプリが見つかりません(404エラー)
次の点を確認してください。
- IDとワークスペースURLは正しいです
- アプリがデプロイされ実行されている
- エンドポイントパスはアプリ内に存在します
ネットワーク接続の問題
次の点を確認してください。
- ネットワークではアウトバウンドHTTPS接続が許可されています
*.databricksapps.com
ドメインはネットワークからアクセス可能です
さらに、組織が構成を必要とするプロキシを使用しているかどうかを確認します。
参照
詳細については、次のリソースを参照してください。