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

Databricks アプリをデプロイする

Databricks アプリを作成して開発したら、それをデプロイして、Databricks ワークスペースでアクセスできるようにします。デプロイメントでは、プロジェクト ファイルで定義された構成を使用してアプリがビルドされ、依存関係がインストールされ、実行されます。Databricks UI または Databricks CLI を使用してアプリをデプロイできます。

注記

テンプレートからアプリを作成した場合、Databricks は最初にアプリを作成したときに自動的にデプロイします。ただし、変更を加えた後でも再デプロイできます。テンプレートから Databricks アプリを作成するを参照してください。

ロジックのデプロイ

Databricks Apps は、Python、Node.js、またはその両方の組み合わせを使用するアプリケーションのデプロイをサポートしています。これにより、Pythonバックエンドを備えたNode.jsフロントエンドなどの柔軟なアーキテクチャが可能になります。

デプロイ中、ビルド プロセスはアプリ ディレクトリのルートにある package.json ファイルをチェックして、Node.js が使用されているかどうかを判断します。存在する場合は、Python ステップと並んでノード固有のビルド ステップが含まれます。デプロイ ロジックは、次のパターンに従います。

package.jsonが存在する場合 :

  1. 実行 npm install

  2. Pythonの依存関係をインストールします。

    • requirements.txtが存在する場合、実行する pip install -r requirements.txt
    • requirements.txt存在せず、 pyproject.tomluv.lockの両方が存在する場合は、 uv syncを実行して依存関係をインストールします。
  3. npm run buildの実行 (buildスクリプトが package.jsonで定義されている場合)

  4. 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存在しない場合 :

  1. Pythonの依存関係をインストールします。

    • requirements.txtが存在する場合、実行する pip install -r requirements.txt
    • requirements.txt存在せず、 pyproject.tomluv.lockの両方が存在する場合は、 uv syncを実行して依存関係をインストールします。
  2. app.yamlで指定されたコマンドを実行するか、コマンドが指定されていない場合は python <my-app>.py を実行します

デプロイメントの準備

アプリをデプロイする前に、プロジェクトに必要なコンポーネントが含まれていることを確認します。

  • メインスクリプト - エントリポイントファイル( app.pyapp.jsなど)
  • オプションの app.yaml ファイル - アプリでカスタム コマンドまたは環境変数が必要な場合は、実行を構成するための app.yaml ファイルを含めます。「app.yamlを使用した Databricks アプリの実行の構成」を参照してください。
  • 依存関係 - すべての依存関係が使用可能であることを確認します。Databricks アプリの依存関係を管理するを参照してください。
  • シークレットまたは環境の値 - app.yamlenv セクションを使用する場合は、参照されているシークレットまたは外部ソースが正しく構成され、アクセス可能であることを確認します。Databricks アプリにリソースを追加するを参照してください。

さらに、アプリ サービスプリンシパル がソース コード フォルダーにアクセスできることを確認します。

デプロイメントソースを選択する

次のソースから Databricks アプリをデプロイできます。

  • ワークスペース フォルダー - アプリ ファイルをワークスペース フォルダーにアップロードし、そこから展開します。 これは標準的な展開方法です。
  • Git リポジトリ - アプリの Git リポジトリを構成し、ワークスペースにファイルをアップロードせずに直接デプロイします。アプリは、デプロイするたびに、構成された Git 参照 (ブランチ、タグ、またはコミット) からコードを読み取ります。GitHub、GitLab、Bitbucket など、すべての主要な Git プロバイダーがサポートされています。サポートされているプロバイダーの完全なリストについては、 「Git プロバイダーを Databricks に接続する」を参照してください。

同じアプリのワークスペースと Git ソースをいつでも切り替えることができます。

アプリをデプロイする

次のセクションでは、ワークスペース フォルダーから、または Git リポジトリから直接デプロイする方法について説明します。

ワークスペースフォルダからデプロイする

Databricks UI からアプリをデプロイするには:

  1. アプリ ファイルを Databricks ワークスペースにアップロードします。手順については、「 ファイルのインポート」を参照してください。
  2. サイドバーのコンピュートアイコンコンピュート ]をクリックします。
  3. アプリ タブに移動し、 名前 列にあるアプリへのリンクをクリックします。
  4. [ デプロイ ] をクリックし、アプリ ファイルをアップロードしたワークスペース内のフォルダーを選択します。
  5. 選択 をクリックし、 デプロイ をクリックします。
  6. 設定を確認し、 デプロイ をクリックします。

Gitリポジトリからデプロイする

備考

ベータ版

この機能はベータ版です。管理者が機能を無効にした場合、Git からデプロイされた既存のアプリは引き続き実行されますが、プレビューを再度有効にするか、アプリからリポジトリを削除するまで、アプリを再デプロイまたは再起動することはできません。

Git リポジトリからアプリをデプロイするには、アプリ レベルでリポジトリを追加し、デプロイ時に Git 参照を指定します。Git リポジトリには、 app.yaml 、依存関係、エントリ ポイントなどのアプリ ファイルが含まれている必要があります。GitHub、GitLab、Bitbucket など、すべての主要な Git プロバイダーがサポートされています。

Git からアプリを構成してデプロイするには:

  1. アプリ ファイルを Git リポジトリにアップロードします。
  2. Databricksワークスペースで、サイドバーのコンピュートアイコン コンピュート をクリックします。
  3. [アプリ] タブに移動し、編集する既存のアプリを選択するか、 [アプリの作成] をクリックします。
  4. Gitリポジトリの構成ステップ 」で、 Gitリポジトリ URL (例: https://github.com/org/repo ) を入力し、 Gitプロバイダーを選択します。
  5. 「アプリを作成」 または 「保存」 をクリックして、アプリの詳細ページに戻ります。
  6. プライベート リポジトリの場合、アプリのサービスプリンシパルにGit資格情報が設定されている必要があります。 アプリの詳細ページで、 Git 資格情報の構成 をクリックします。または、アプリを編集し、 Gitリポジトリステップの構成 で資格情報を追加します。 Git 資格情報を追加するには、アプリに対するCAN MANAGE権限が必要です。各プロバイダーの手順については、 Git プロバイダーを Databricks に接続するを参照してください。
重要

セキュリティのため、 Databricks 、デプロイメント ソースを変更するとき ( Gitからワークスペース、またはワークスペースから Git に)、またはGitリポジトリを変更するときに、アプリのサービスプリンシパルに関連付けられているすべてのGit Git情報を削除します。 Git 参照のみを変更しても資格情報は削除されません。デプロイメント ソースまたはリポジトリを変更した後、Git から再度デプロイするには Git 資格情報を再構成する必要があります。

注記

アプリ作成者は、 Gitデプロイメント ベータ機能が有効になっている場合にのみ、サービスプリンシパルに対するCAN MANAGE権限を自動的に受け取ります。 この機能が無効になっている間にアプリを作成した場合、Git 資格情報を追加する権限がない可能性があります。

サービスシプリンパルは、プロバイダーごとに 1 つのGit認証情報をサポートします。 アカウント コンソールなどを介して資格情報を更新すると、そのプロバイダーの既存の資格情報が置き換えられ、そのプロバイダーでそのサービスプリンシパルを使用するすべてのアプリに影響します。

次に、アプリをデプロイします。

  1. アプリの詳細ページで、 [デプロイ] をクリックします。
  2. Gitから 選択します。
  3. Git 参照 の場合は、ブランチ名、タグ、またはコミット SHA (たとえば、 mainv1.0.0 、またはコミット ハッシュ) を入力します。
  4. 参照タイプ には、ブランチ、タグ、コミットなどの参照のタイプを指定します。
  5. [デプロイ] をクリックします。

ブランチまたはタグ参照の場合、Databricks はそのブランチまたはタグから最新のコミットをデプロイします。コミット SHA 参照の場合、Databricks は常にその特定のコミットをデプロイします。サービスプリンシパルのGit資格情報が無効であるか期限切れの場合、デプロイは失敗します。

デプロイメント後の挙動

デプロイが完了すると、Databricks はapp.yamlファイルで定義されたcommandに基づいてアプリを起動するか、デフォルトでpython app.pyを実行します。アプリの詳細ページには現在のステータスが表示され、ログ、デプロイ履歴、環境情報にアクセスできます。

アプリのデプロイ後にアプリの詳細ページを表示する

デプロイされたアプリの出力を表示するには、アプリのリンクをクリックします。

ログ 」タブに移動して、デバッグとランタイム・モニタリングを行います。「Databricks Appsのロギングとモニタリング」を参照してください。

アプリを更新または再デプロイする

ソース コードまたは構成に変更を加えた後は、アプリを再デプロイします。再デプロイすると、アプリを再作成せずに最新の更新が適用されます。ワークスペースまたは Git リポジトリからいつでも再デプロイできます。

ワークスペースフォルダから再デプロイする

ワークスペース フォルダーから再デプロイするには:

  1. ワークスペース フォルダー内のアプリ ファイルを更新します。
  2. アプリを選択し、 「デプロイ」 をクリックします。
  3. ソース コード パスが変更された場合、または Git ソースから切り替える場合は、 [デプロイ] の横にある矢印をクリックし、 [別のソースを使用してデプロイ] を選択します。

Gitリポジトリから再デプロイする

Git リポジトリから再デプロイするには:

  1. 変更を Git リポジトリにプッシュします。
  2. Databricks ワークスペースでアプリを選択し、 [デプロイ] をクリックします。
  3. Git 参照が変更された場合、またはワークスペース ソースから切り替える場合は、 [デプロイ] の横にある矢印をクリックし、 [別のソースを使用してデプロイ] を選択します。

Git リポジトリまたは資格情報を変更するには、アプリの構成を編集します。アプリから Git リポジトリを削除すると、ワークスペースからのデプロイメントが強制されます。

重要

Gitリポジトリを変更するか、デプロイ ソース ( Gitとワークスペース) を切り替えると、アプリのサービスプリンシパルのすべてのGit資格情報が削除されます。 Git から再度デプロイする前に、資格情報を再設定する必要があります。

デプロイメントの問題のトラブルシューティング

アプリがデプロイに失敗するか、期待どおりに実行されない場合は、次のトラブルシューティング ステップを試してください。

  • ログでエラー メッセージまたはランタイム出力を確認します。
  • app.yaml構文と設定を検証します。
  • envセクションのシークレットと環境変数が適切に解決されることを確認します。
  • 必要な依存関係がすべて含まれているかインストールされているかを確認します。

Git リポジトリのデプロイメントの場合:

  • プライベート リポジトリの場合、アプリのサービスプリンシパルにGit資格情報が構成されていることを確認します。
  • Git リポジトリの URL が正しいことを確認します。
  • リポジトリに Git 参照 (ブランチ、タグ、またはコミット) が存在することを確認します。

次のステップ