Databricks アセットバンドルを使用した Databricks アプリの管理
Databricks Apps を使用すると、Databricks プラットフォーム上で安全なデータおよび AI アプリケーションを作成し、ユーザーと簡単に共有できます。Databricks Asset Bundle を使用して、アプリのデプロイを管理できます。アプリとバンドルの詳細については、「Databricks アプリ」および「Databricksアセットバンドルとは」を参照してください。
この記事では、Databricks アプリをローカルで開発し、Databricks Asset Bundle を使用して Databricks ワークスペースへのアプリのデプロイを管理するようにバンドルを構成する手順について説明します。
Streamlit アプリでサンプル バンドルを初期化するには、streamlit-app バンドル テンプレートを bundle init
コマンドと共に使用します。
databricks bundle init https://github.com/databricks/bundle-examples --template-dir contrib/templates/streamlit-app
必要条件
- Databricks ワークスペースとローカル開発環境は、Databricks アプリの要件を満たしている必要があります。「 Databricks アプリのワークスペースと開発環境を設定する」を参照してください。
- Databricks CLI バージョン 0.250.0 以降。インストールされている Databricks CLI のバージョンを確認するには、コマンド
databricks -v
を実行します。Databricks CLI をインストールするには、「 Databricks CLI のインストールまたは更新」を参照してください。
アプリをローカルで作成する
まず、Databricks アプリを作成します。アプリは、Dash や Gradio などの一般的なフレームワークを使用して Python で開発されます。Databricks アプリをローカルでゼロからビルドするか、Databricks ワークスペースでアプリを作成してからファイルをローカル コンピューターに同期するか、GitHub から Databricks サンプル アプリを取得できます。
-
アプリをゼロから構築するには:
-
ワークスペースでアプリを作成し、ローカルに同期するには:
-
「カスタム Databricks アプリを作成する」の手順に従って、UI でアプリを作成します。
-
アプリのローカル ディレクトリを作成し、
cd
します。Bashmkdir hello-world-app
cd hello-world-app -
アプリのファイルをローカルに同期します。ワークスペース UI のアプリのインストール ページから
databricks workspace export-dir
コマンドをコピーして、コマンド ラインで実行できます。例えば:Bashdatabricks workspace export-dir /Workspace/Users/someone@example.com/databricks_apps/hello-world_2025_05_09-17_43/hello-world-app .
これにより、ワークスペース ディレクトリ内のアプリ ファイルがローカル マシンの
hello-world-app
ディレクトリにダウンロードされます。
-
-
GitHub から Databricks サンプル アプリを取得するには:
-
Databricks アプリ テンプレートの GitHub リポジトリを複製します。
Bashgit clone https://github.com/databricks/app-templates
-
サンプル アプリの 1 つを単純なアプリ プロジェクトとして選択します。
-
既存のバンドルに既存のアプリを追加する
ワークスペースに Databricks アプリがあり、アプリを追加する既存のバンドルがある場合は、 databricks bundle generate app
コマンドを使用できます。このコマンドは、アプリの設定ファイルを生成し、アプリのすべてのソースコードファイルをダウンロードして、バンドルに追加します。例えば:
databricks bundle generate app --existing-app-name hello-world-app
バンドルでアプリ構成を生成したら、 databricks bundle bind
コマンドを使用して、ワークスペースとバンドル内のアプリの同期を維持します。
databricks bundle generate
と databricks bundle bind
の詳細については、「bundle
コマンド グループ」を参照してください。
アプリをローカルで開発およびデバッグする
次に、ローカルでアプリの開発を続けます。databricks apps run-local
コマンドを使用してアプリを起動してデバッグします。このコマンドは、アプリ自体に要求をプロキシするために使用されるアプリ プロキシを開始し、必要な Databricks アプリ関連のヘッダーを挿入します。
-
すべての依存関係をインストールし、仮想環境を準備してから、アプリとデバッガーを起動するには、
--prepare-environment
オプションと--debug
オプションを指定してrun-local
コマンドを使用します。Bashdatabricks apps run-local --prepare-environment --debug
このコマンドは、
uv
を使用して仮想環境を準備し、デバッガーはdebugpy
. -
[
http://localhost:8001
] に移動してアプリを表示します。 -
アプリをデバッグするためのブレークポイントを設定します。Visual Studio Code で、Python デバッガーをインストールし、[ 実行 ] > [デバッグの開始 ] を選択し、[ リモートアタッチ] を選択します。
プロキシはポート 5678 で開始されますが、
--port
オプションを使用して構成できます。
バンドルを使用してアプリをワークスペースにデプロイする
アプリをワークスペースにデプロイする準備ができたら、アプリを作成するバンドル構成を追加してから、バンドルをデプロイします。
-
アプリ プロジェクトのルートにファイル
databricks.yml
を作成します。Databricks CLI は、ルートにdatabricks.yml
ファイルがあるフォルダーをバンドルとして認識し、 Databricks バンドル コマンドを有効にします。 -
次の YAML をコピーして
databricks.yml
ファイルに貼り付け、プレースホルダー ワークスペースとユーザー名の値を独自の値に置き換えます。YAMLbundle:
name: hello_world_bundle
resources:
apps:
hello_world_app:
name: 'hello-world-app'
source_code_path: . # This assumes the app source code is at the root of the project.
description: 'A Databricks app'
targets:
dev:
mode: development
default: true
workspace:
host: https://myworkspace.cloud.databricks.com
prod:
mode: production
workspace:
host: https://myworkspace.cloud.databricks.com
root_path: /Workspace/Users/someone@example.com/.bundle/${bundle.name}/${bundle.target}
permissions:
- user_name: someone@example.com
level: CAN_MANAGE -
検証してから、バンドルをデプロイします。デフォルトでは、ワークスペースの
dev
ターゲットにアプリとバンドルが作成されます。Bashdatabricks bundle validate
Bashdatabricks bundle deploy
-
bundle summary
コマンドを使用して、ワークスペースでアプリ ページを開くためのアプリ リソース URL を取得します。Bashdatabricks bundle summary
OutputName: hello_world_bundle
Target: dev
Workspace:
Host: https://myworkspace.cloud.databricks.com
User: someone@example.com
Path: /Workspace/Users/someone@example.com/.bundle/hello_world_bundle/dev
Resources:
Apps:
hello_world_app:
Name: hello-world-app
URL: https://myworkspace.cloud.databricks.com/apps/hello-world-app?o=8498204313176880
開発、テスト、本番運用へのデプロイ
引き続きローカルでアプリに変更を加え、バンドルを再デプロイしてワークスペース内のアプリを更新します。ワークスペースでアプリを起動するには、次のコマンドでアプリのリソース キーを指定して、バンドル内のアプリを実行します。
databricks bundle run hello_world_app
アプリを本番運用で利用できるようにする準備ができたら、バンドルを対象の本番運用 ワークスペースにデプロイし、アプリを実行します。
databricks bundle deploy -t prod
databricks bundle run hello_world_app -t prod