Databricks アプリをデプロイする
Databricks アプリを作成して開発したら、それをデプロイして、Databricks ワークスペースでアクセスできるようにします。デプロイメントでは、プロジェクト ファイルで定義された構成を使用してアプリがビルドされ、依存関係がインストールされ、実行されます。Databricks UI または Databricks CLI を使用してアプリをデプロイできます。
テンプレートからアプリを作成した場合、Databricks は最初にアプリを作成したときに自動的にデプロイします。ただし、変更を加えた後でも再デプロイできます。「テンプレートから Databricks アプリを作成する」を参照してください。
デプロイロジック
Databricks Apps は、Python、Node.js、またはその両方の組み合わせを使用するアプリケーションのデプロイをサポートしています。これにより、Pythonバックエンドを備えたNode.jsフロントエンドなどの柔軟なアーキテクチャが可能になります。
デプロイ中、ビルド プロセスはアプリ ディレクトリのルートにある package.json ファイルをチェックして、Node.js が使用されているかどうかを判断します。存在する場合は、Python ステップと並んでノード固有のビルド ステップが含まれます。デプロイ ロジックは、次のパターンに従います。
package.jsonが存在する場合 :
- 実行
npm install pip install -r requirements.txtの実行 (存在する場合)npm run buildの実行 (buildスクリプトがpackage.jsonで定義されている場合)app.yamlで指定されたコマンドを実行するか、コマンドが指定されていない場合はnpm run startを実行します
app.yamlでコマンドが指定されていない場合、Databricks は、アプリに Python コードが含まれていても npm run startを実行します。Python プロセスと Node.js プロセスの両方を実行するには、concurrently などのツールを使用して両方を起動するカスタム start スクリプトを定義します。たとえば、 concurrently "npm run start:node" "python my_app.py"のようになります。
package.json存在しない場合 :
pip install -r requirements.txtの実行 (存在する場合)app.yamlで指定されたコマンドを実行するか、コマンドが指定されていない場合はpython <my-app>.pyを実行します
展開の準備
アプリをデプロイする前に、プロジェクトに必要なコンポーネントが含まれていることを確認します。
- メインスクリプト - エントリポイントファイル(
app.pyやapp.jsなど) - オプションの
app.yamlファイル - アプリでカスタム コマンドまたは環境変数が必要な場合は、実行を構成するためのapp.yamlファイルを含めます。「app.yamlを使用した Databricks アプリの実行の構成」を参照してください。 - 依存関係 - すべての依存関係が使用可能であることを確認します。「Databricks アプリの依存関係を管理する」を参照してください。
- シークレットまたは環境の値 -
app.yamlのenvセクションを使用する場合は、参照されているシークレットまたは外部ソースが正しく構成され、アクセス可能であることを確認します。「Databricks アプリにリソースを追加する」を参照してください。
さらに、アプリ サービスプリンシパル がソース コード フォルダーにアクセスできることを確認します。
展開ソースを選択する
次のソースから Databricks アプリをデプロイできます。
- ワークスペース フォルダー - アプリ ファイルをワークスペース フォルダーにアップロードし、そこから展開します。 これは標準的な展開方法です。
- Git リポジトリ - アプリの Git リポジトリを構成し、ワークスペースにファイルをアップロードせずに直接デプロイします。アプリは、デプロイするたびに、構成された Git 参照 (ブランチ、タグ、またはコミット) からコードを読み取ります。GitHub、GitLab、Bitbucket など、すべての主要な Git プロバイダーがサポートされています。サポートされているプロバイダーの完全なリストについては、 「Git プロバイダーを Databricks に接続する」を参照してください。
同じアプリのワークスペースと Git ソースをいつでも切り替えることができます。
アプリを展開する
次のセクションでは、ワークスペース フォルダーから、または Git リポジトリから直接デプロイする方法について説明します。
ワークスペースフォルダからデプロイする
- Databricks UI
- Databricks CLI
Databricks UI からアプリをデプロイするには:
- アプリ ファイルを Databricks ワークスペースにアップロードします。手順については、「 ファイルのインポート」を参照してください。
- サイドバーの
[ コンピュート ]をクリックします。
- [アプリ ] タブに移動し、[ 名前 ] 列にあるアプリへのリンクをクリックします。
- [ デプロイ ] をクリックし、アプリ ファイルをアップロードしたワークスペース内のフォルダーを選択します。
- 「選択」 をクリックし、「 デプロイ」 をクリックします。
- 設定を確認し、[ デプロイ] をクリックします。
CLI を使用してアプリをデプロイするには:
-
ターミナルを開き、アプリファイルが含まれているディレクトリに移動します。
-
syncコマンドを使用して、アプリ ファイルを Databricks ワークスペースにアップロードします。パスを、ファイルをアップロードするワークスペースの場所に置き換えます。Bashdatabricks sync --watch . /Workspace/Users/my-email@org.com/my-app--watchフラグは同期プロセスを実行し続け、ローカルでファイルを変更すると変更を自動的にアップロードします。特定のファイルまたはディレクトリを同期から除外するには、それらをローカル アプリ ディレクトリ内の.gitignoreファイルに追加します。除外する一般的なファイルはnode_modules/、.env、__pycache__/、.DS_Store、および大きなデータ ファイルやビルド アーティファクトです。 -
ワークスペース内のファイルを表示してアップロードを確認します。クリック
サイドバーの ワークスペースをクリック し、アプリ用に作成したディレクトリに移動します。
-
次のコマンドを実行してアプリをデプロイします。アプリ名とソースコードパスを実際の値に置き換えます。
Bashdatabricks apps deploy my-app-name \
--source-code-path /Workspace/Users/my-email@org.com/my-appCLI はデプロイメントの進行状況を表示し、アプリが実行中であることを確認します。
Gitリポジトリからデプロイする
ベータ版
この機能はベータ版です。管理者が機能を無効にした場合、Git からデプロイされた既存のアプリは引き続き実行されますが、プレビューを再度有効にするか、アプリからリポジトリを削除するまで、アプリを再デプロイまたは再起動することはできません。
Git リポジトリからアプリをデプロイするには、アプリ レベルでリポジトリを追加し、デプロイ時に Git 参照を指定します。Git リポジトリには、 app.yaml 、依存関係、エントリ ポイントなどのアプリ ファイルが含まれている必要があります。GitHub、GitLab、Bitbucket など、すべての主要な Git プロバイダーがサポートされています。
Git からアプリを構成してデプロイするには:
- アプリ ファイルを Git リポジトリにアップロードします。
- Databricksワークスペースから、
サイドバーの コンピュート 。
- [アプリ] タブに移動し、編集する既存のアプリを選択するか、 [アプリの作成] を クリックします。
- Gitリポジトリの構成ステップ 」で、 Gitリポジトリ URL (例:
https://github.com/org/repo) を入力し、 Gitプロバイダーを選択します。 - 「アプリを作成」 または 「保存」 をクリックして、アプリの詳細ページに戻ります。
- プライベート リポジトリの場合、アプリのサービスプリンシパルにGit資格情報が設定されている必要があります。 アプリの詳細ページで、 「Git 資格情報の構成」を クリックします。または、アプリを編集し、 Gitリポジトリステップの構成」 で資格情報を追加します。 Git 資格情報を追加するには、アプリに対する
CAN MANAGE権限が必要です。各プロバイダーの手順については、 「Git プロバイダーを Databricks に接続する」を参照してください。
セキュリティのため、 Databricks 、デプロイメント ソースを変更するとき ( Gitからワークスペース、またはワークスペースから Git に)、またはGitリポジトリを変更するときに、アプリのサービスプリンシパルに関連付けられているすべてのGit Git情報を削除します。 Git 参照のみを変更しても資格情報は削除されません。デプロイメント ソースまたはリポジトリを変更した後、Git から再度デプロイするには Git 資格情報を再構成する必要があります。
アプリ作成者は、 Gitデプロイメント ベータ機能が有効になっている場合にのみ、サービスプリンシパルに対するCAN MANAGE権限を自動的に受け取ります。 この機能が無効になっている間にアプリを作成した場合、Git 資格情報を追加する権限がない可能性があります。
サービスシプリンパルは、プロバイダーごとに 1 つのGit認証情報をサポートします。 アカウント コンソールなどを介して資格情報を更新すると、そのプロバイダーの既存の資格情報が置き換えられ、そのプロバイダーでそのサービスプリンシパルを使用するすべてのアプリに影響します。
次に、アプリをデプロイします。
- アプリの詳細ページで、 [デプロイ] をクリックします。
- Gitから 選択します。
- Git 参照 の場合は、ブランチ名、タグ、またはコミット SHA (たとえば、
main、v1.0.0、またはコミット ハッシュ) を入力します。 - 参照タイプ には、ブランチ、タグ、コミットなどの参照のタイプを指定します。
- [デプロイ] をクリックします。
ブランチまたはタグ参照の場合、Databricks はそのブランチまたはタグから最新のコミットをデプロイします。コミット SHA 参照の場合、Databricks は常にその特定のコミットをデプロイします。サービスプリンシパルのGit資格情報が無効であるか期限切れの場合、デプロイは失敗します。
展開後の行動
デプロイが完了すると、Databricks はapp.yamlファイルで定義されたcommandに基づいてアプリを起動するか、デフォルトでpython app.pyを実行します。アプリの詳細ページには現在のステータスが表示され、ログ、デプロイ履歴、環境情報にアクセスできます。

デプロイされたアプリの出力を表示するには、アプリのリンクをクリックします。
「 ログ 」タブに移動して、デバッグとランタイム・モニタリングを行います。「Databricks Appsのロギングとモニタリング」を参照してください。
アプリを更新または再デプロイする
ソース コードまたは構成に変更を加えた後は、アプリを再デプロイします。再デプロイすると、アプリを再作成せずに最新の更新が適用されます。ワークスペースまたは Git リポジトリからいつでも再デプロイできます。
ワークスペースフォルダから再デプロイする
ワークスペース フォルダーから再デプロイするには:
- ワークスペース フォルダー内のアプリ ファイルを更新します。
- アプリを選択し、 「デプロイ」 をクリックします。
- ソース コード パスが変更された場合、または Git ソースから切り替える場合は、 [デプロイ] の横にある矢印をクリックし、 [別のソースを使用してデプロイ] を 選択します。
Gitリポジトリから再デプロイする
Git リポジトリから再デプロイするには:
- 変更を Git リポジトリにプッシュします。
- Databricks ワークスペースでアプリを選択し、 [デプロイ] をクリックします。
- Git 参照が変更された場合、またはワークスペース ソースから切り替える場合は、 [デプロイ] の横にある矢印をクリックし、 [別のソースを使用してデプロイ] を選択します。
Git リポジトリまたは資格情報を変更するには、アプリの構成を編集します。アプリから Git リポジトリを削除すると、ワークスペースからのデプロイメントが強制されます。
Gitリポジトリを変更するか、デプロイ ソース ( Gitとワークスペース) を切り替えると、アプリのサービスプリンシパルのすべてのGit資格情報が削除されます。 Git から再度デプロイする前に、資格情報を再設定する必要があります。
展開の問題のトラブルシューティング
アプリがデプロイに失敗するか、期待どおりに実行されない場合は、次のトラブルシューティング ステップを試してください。
- ログでエラー メッセージまたはランタイム出力を確認します。
app.yaml構文と設定を検証します。envセクションのシークレットと環境変数が適切に解決されることを確認します。- 必要な依存関係がすべて含まれているかインストールされているかを確認します。
Git リポジトリのデプロイメントの場合:
- プライベート リポジトリの場合、アプリのサービスプリンシパルにGit資格情報が構成されていることを確認します。
- Git リポジトリの URL が正しいことを確認します。
- リポジトリに Git 参照 (ブランチ、タグ、またはコミット) が存在することを確認します。