Unity Catalog接続リソースをDatabricksアプリに追加する
Unity Catalog接続をDatabricks Apps リソースとして追加して、外部サービスとデータ ソースへの安全なアクセスを可能にします。 Unity Catalog 接続は資格情報と認証の詳細を管理するため、アプリケーション コードに資格情報をハードコードする必要はありません。
Unity Catalog接続リソースを追加する
Unity Catalog接続をリソースとして追加する前に、アプリのリソースの前提条件を確認してください。
-
アプリを作成または編集するときは、 「構成」 ステップに移動します。
-
[アプリ リソース] セクションで、 [+ リソースの追加] をクリックします。
-
リソース タイプとして UC 接続を 選択します。
-
ワークスペースで使用可能な接続のリストからUnity Catalog接続を選択します。
-
アプリの権限レベルを選択します:
- 接続の使用: 接続を使用して外部サービスにアクセスする権限をアプリに付与します。
USE CONNECTION権限に相当します。
- 接続の使用: 接続を使用して外部サービスにアクセスする権限をアプリに付与します。
-
(オプション) アプリ構成で接続を参照する方法であるカスタム リソース キーを指定します。デフォルトのキーは
connectionです。
Unity Catalog接続リソースを追加する場合:
- Databricks 、選択した接続に対するアプリのサービスプリンパルシに
USE CONNECTION権限を付与します。 - アプリは資格情報を直接管理することなく外部サービスにアクセスできます。
- 接続資格情報は Unity Catalog によって安全に管理され、アプリケーション コードには公開されません。
環境変数
Unity Catalog 接続リソースを使用してアプリをデプロイすると、Databricks はvalueFromフィールドを使用して参照できる環境変数を通じて接続名を公開します。
構成例:
env:
- name: UC_CONNECTION_NAME
valueFrom: connection # Use your custom resource key if different
アプリケーションで接続を使用する:
import os
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ExternalFunctionRequestHttpMethod
# Access the connection name
connection_name = os.getenv("UC_CONNECTION_NAME")
# Initialize workspace client
w = WorkspaceClient()
# Make HTTP request through the connection
response = w.serving_endpoints.http_request(
conn=connection_name,
method=ExternalFunctionRequestHttpMethod.POST,
path="/api/v1/resource",
json={"key": "value"},
headers={"extra_header_key": "extra_header_value"},
)
# Process the response
print(response)
詳細については、 「環境変数を使用してリソースにアクセスする」を参照してください。
Unity Catalog接続リソースを削除する
アプリからUnity Catalog接続リソースを削除すると、アプリのサービスプリンシパルは接続へのアクセスを失います。 接続自体は変更されず、適切な権限を持つ他のユーザーやアプリケーションは引き続き利用できます。
ベストプラクティス
Unity Catalog接続リソースを使用する場合は、次の点を考慮してください。
- 接続障害やネットワークの問題に対するエラー処理と再試行ロジックを実装します。
- 特にクロスリージョンまたはクロスクラウドのリクエストの場合、API 応答時間と接続遅延を監視します。
- 特に大きなペイロードや大量の API 呼び出しの場合、外部サービスにリクエストを行うときは、データ送信コストを考慮してください。
- セキュリティ ポリシーに従って、接続資格情報を定期的に確認し、ローテーションします。
- API 応答を検証し、外部サービス呼び出しに適切なタイムアウト値を実装します。