メインコンテンツまでスキップ

Unity Catalog接続リソースをDatabricksアプリに追加する

Unity Catalog接続をDatabricks Apps リソースとして追加して、外部サービスとデータ ソースへの安全なアクセスを可能にします。 Unity Catalog 接続は資格情報と認証の詳細を管理するため、アプリケーション コードに資格情報をハードコードする必要はありません。

Unity Catalog接続リソースを追加する

Unity Catalog接続をリソースとして追加する前に、アプリのリソースの前提条件を確認してください。

  1. アプリを作成または編集するときは、 「構成」 ステップに移動します。

  2. [アプリ リソース] セクションで、 [+ リソースの追加] をクリックします。

  3. リソース タイプとして UC 接続を 選択します。

  4. ワークスペースで使用可能な接続のリストからUnity Catalog接続を選択します。

  5. アプリの権限レベルを選択します:

    • 接続の使用: 接続を使用して外部サービスにアクセスする権限をアプリに付与します。USE CONNECTION権限に相当します。
  6. (オプション) アプリ構成で接続を参照する方法であるカスタム リソース キーを指定します。デフォルトのキーはconnectionです。

Unity Catalog接続リソースを追加する場合:

  • Databricks 、選択した接続に対するアプリのサービスプリンパルシにUSE CONNECTION権限を付与します。
  • アプリは資格情報を直接管理することなく外部サービスにアクセスできます。
  • 接続資格情報は Unity Catalog によって安全に管理され、アプリケーション コードには公開されません。

環境変数

Unity Catalog 接続リソースを使用してアプリをデプロイすると、Databricks はvalueFromフィールドを使用して参照できる環境変数を通じて接続名を公開します。

構成例:

YAML
env:
- name: UC_CONNECTION_NAME
valueFrom: connection # Use your custom resource key if different

アプリケーションで接続を使用する:

Python
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 応答を検証し、外部サービス呼び出しに適切なタイムアウト値を実装します。