Databricks アプリに Databricks アプリ リソースを追加する
デプロイされた他のアプリと通信できるように、別のDatabricks アプリをアプリのリソースとして追加します。これにより、別のアプリの API を呼び出したり、複数のアプリ間でワークフローを調整したりするなど、アプリ間のやり取りが可能になります。
Databricks アプリリソースを追加する
アプリをリソースとして追加する前に、アプリ リソースの前提条件を確認してください。
-
アプリを作成または編集するときは、 「構成」 ステップに移動します。
-
[アプリ リソース] セクションで、 [+ リソースの追加] をクリックします。
-
リソースの種類として Databricks アプリを 選択します。
-
ワークスペース内の利用可能なアプリからターゲット アプリを選択します。
-
アプリの権限レベルを選択します:
- 使用可能: アプリにターゲット アプリを呼び出して起動する権限を付与します。
CAN USE権限に相当します。
- 使用可能: アプリにターゲット アプリを呼び出して起動する権限を付与します。
-
(オプション) アプリ構成でターゲット アプリを参照する方法であるカスタム リソース キーを指定します。デフォルトのキーは
appです。
Databricks アプリ リソースを追加すると、次のようになります。
- Databricks 、アプリのサービス プリンパルシにターゲット アプリに対する
CAN USE権限を付与します。 - アプリはターゲット アプリのエンドポイントを呼び出すことができます。
環境変数
アプリ リソースを使用してアプリをデプロイすると、Databricks は、 valueFromフィールドを使用して参照できる環境変数を通じて、ターゲット アプリの名前 (URL ではありません) を公開します。ターゲット アプリの URL を取得するには、Databricks SDK を使用して名前を解決します。
構成例:
env:
- name: MY_OTHER_APP
valueFrom: app # Use your custom resource key if different
アプリケーションでターゲット アプリの URL を解決するには:
import os
from databricks.sdk import WorkspaceClient
# Access the target app name from the environment variable
w = WorkspaceClient()
other_app = w.apps.get(name=os.environ["MY_OTHER_APP"])
# Get the target app's URL
url = other_app.url # e.g. "https://my-other-app-12345.cloud.databricksapps.com"
詳細については、 「環境変数を使用してリソースにアクセスする」を参照してください。
Databricks アプリのリソースを削除する
アプリ リソースを削除すると、Databricks はターゲット アプリのアクセス許可セットからCAN USEアクセス許可を削除します。アプリはターゲット アプリを呼び出せなくなります。対象アプリ自体は変更されず、適切な権限を持つ他のユーザーやアプリケーションが引き続き利用できます。
ベストプラクティス
Databricks アプリ リソースを操作するときは、次の点を考慮してください。
- 環境変数とDatabricks SDKを使用して、URL をハードコーディングするのではなく、ランタイム時にターゲット アプリの URL を解決します。これにより、アプリの環境間での移植性が維持されます。
- 対象アプリが利用できない、またはエラーを返す場合のエラー処理を実装します。
- 特にアプリが重要な機能でターゲット アプリに依存している場合は、ターゲット アプリの健全性と可用性を監視します。