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

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. Node.jsの依存関係をインストールします。pnpm-lock.yamlが存在する場合はpnpm install --frozen-lockfileを実行し、そうでない場合はnpm installを実行します。Node.jsの依存関係を定義するを参照してください。

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

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

  4. app.yaml で指定されたコマンドを実行してください。npmアプリの場合、コマンドが指定されていない場合、Databricks は npm run start を実行します。pnpm アプリでは、app.yamlでコマンドを指定する必要があります。

注記

npmアプリでは、app.yamlでコマンドが指定されておらず、アプリにPythonコードが含まれている場合でも、Databricks は 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.tomlとuv.lockの両方が存在する場合は、 uv syncを実行して依存関係をインストールします。
  2. 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参照(ブランチ、タグ、またはコミット)からコードを読み取ります。Gitリポジトリからのデプロイ」を参照してください。

同じアプリのワークスペースとGitソースをいつでも切り替えることができます。 アプリの更新または再デプロイを参照してください。

アプリをデプロイする​

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

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

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

  1. アプリ ファイルを Databricks ワークスペースにアップロードします。手順については、「 ファイルのインポート」を参照してください。
  2. Databricksワークスペースで、アプリのアイコン。アプリスイッチャーで Databricks Apps を選択します。
  3. 「名前」 欄でアプリを選択してください。
  4. [ デプロイ ] をクリックし、アプリ ファイルをアップロードしたワークスペース内のフォルダーを選択します。
  5. 選択 をクリックし、 デプロイ をクリックします。

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

Gitリポジトリからアプリをデプロイするには、アプリ レベルでリポジトリを追加し、デプロイ時にGit参照を指定します。 Gitリポジトリには、 app.yaml 、依存関係、エントリ ポイントを含むアプリ ファイルが含まれている必要があります。 GitHub、GitLab、Bitbucketなど、主要なGitプロバイダーはすべてサポートされています。Gitをバックエンドとするアプリケーションは、UI、CLI、API、または宣言型自動化バンドルを使用してデプロイすることもできます。

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

  1. アプリ ファイルを Git リポジトリにアップロードします。
  2. Databricksワークスペースで、アプリのアイコン。アプリスイッチャーで Databricks Apps を選択します。
  3. 編集する既存のアプリを選択するか、 + アプリを作成 をクリックし、続けて カスタムアプリを作成 をクリックします。カスタム Databricks アプリを作成するを参照してください。
  4. **Configure Git**ステップで、GitリポジトリURL(例: )を入力し、Gitプロバイダーを選択してください。https://github.com/org/repo
  5. 新しいアプリの場合は、 Gitリファレンス(Branch、タグ、またはcommit) を入力します。GitHub または Azure DevOps リポジトリの場合、ブランチが選択されていれば、オプションで プッシュイベント時の自動デプロイメント を有効にできます。自動 Git デプロイメントの有効化を参照してください。
  6. 「アプリを作成」 または 「保存」 をクリックすると、アプリの概要ページに戻ります。
  7. プライベート リポジトリの場合、アプリのService PrincipalにGit認証情報が設定されている必要があります。アプリの概要ページで、 Configure Git credential をクリックします。Git認証情報を追加するには、アプリのService Principalに対するCAN MANAGE権限が必要です。パブリック リポジトリにはGit認証情報は必要ありません。各プロバイダーの手順については、 Git プロバイダーを Databricks に接続するを参照してください。

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

  1. アプリの概要ページで、 [デプロイ] をクリックします。
  2. Gitから 選択します。
  3. Git 参照 の場合は、ブランチ名、タグ、またはコミット SHA (たとえば、 main 、 v1.0.0 、またはコミット ハッシュ) を入力します。
  4. 参照タイプ には、ブランチ、タグ、コミットなどの参照のタイプを指定します。
  5. (オプション) ソースコードパス には、リポジトリ内の特定のディレクトリへのパスを入力します。アプリはそのディレクトリを最上位ディレクトリとして扱い、そのディレクトリ外のファイルにはアクセスできません。パスを指定しない場合、Databricksはリポジトリのルートを使用します。
  6. (オプション)ブランチへのコミットごとに自動的にデプロイするには、「プッシュイベント時の自動デプロイ」を有効にします。 監視対象のブランチ を設定する必要があります。オプションで、リポジトリ ルート以外のパスを設定するために、 ソースコードパス を含めることができます。自動 Git デプロイメントを有効にするを参照してください。
  7. [デプロイ] をクリックします。

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

注記

Gitデプロイメントが一般公開される前に作成されたアプリは、アプリのサービスプリンシパルに対するCAN MANAGE権限をクリエイターに自動的に付与しません。古いアプリにGit認証情報を追加する必要がある場合は、ワークスペース管理者にサービスプリンシパルに対するCAN MANAGE権限を付与するよう依頼してください。

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

自動Gitデプロイメントを有効にする​

注記

GitHub および Azure DevOps は、自動デプロイメントでサポートされているプロバイダーです。

自動デプロイを有効にすると、Databricks は Git リポジトリに Webhook (Azure DevOps ではサービスフックと呼ばれます) を登録し、構成されたブランチに新しい commit が行われるたびにアプリを再デプロイします。デプロイされたアプリは、手動のステップなしでリポジトリと同期された状態に保たれます。

自動デプロイメントには、Git プロバイダーに応じて以下のセットアップが必要です。

  • The Databricks GitHub app must be installed on theリポジトリ.
  • リポジトリはプライベートである必要があります。Databricks は公開リポジトリからの自動デプロイメントをサポートしていません。
  • アプリのサービスプリンシパルには、リポジトリにアクセスできるGit認証情報が設定されている必要があります。DatabricksにGitプロバイダーを接続するを参照してください。

リポジトリの Webhook は 20 個までに制限されています(GitHub Enterprise の場合は 250 個)。

自動デプロイメントを有効にするには、GitHubまたはAzure DevOpsをGitプロバイダとして構成し、 Auto deploy on push events を有効にします。これは、以下のいずれかの場所で実行できます:

Gitリファレンスはブランチ名である必要があります。タグは自動デプロイメントと互換性がありません。

注記

アプリのサービスプリンシパルに、リポジトリ用のGit認証情報がない場合、自動デプロイを有効にしたときにDatabricksはそれを追加するよう促します。アクセスを承認すると自動デプロイメントが有効になりますが、それらを開始するには、アプリを手動で再デプロイする必要があります。

自動デプロイメントを無効にするには、既存のアプリで「自動デプロイメント」バッジをクリックし、「プッシュイベント時の自動デプロイメント」を無効にします。 アプリ設定 で設定を再構成することもできます。

Gitのみのデプロイメントを強制する​

ワークスペース管理者は、ワークスペース内のすべてのアプリをGitリポジトリからデプロイするよう要求できます。 設定 > 開発 > アプリ に移動し、 「Git からのアプリのデプロイのみを許可する」 をオンにします。この設定はデフォルトではオフになっています。

Gitデプロイメントを強制する場合:

  • ユーザーはアプリを作成する前にGitリポジトリを構成する必要があります。
  • ユーザーはGitからのみデプロイでき、ワークスペースフォルダからはデプロイできません。
  • Databricksはワークスペース内のアプリテンプレートを無効にします。
  • ユーザーは、Gitリポジトリを持つアプリからGitリポジトリを削除することはできません。
  • 既存のアプリは引き続き実行されますが、アプリにGitリポジトリがない限り、ユーザーはそれらをデプロイしたり、再度起動したりすることはできません。

デプロイメント後の挙動​

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

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

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

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

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

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

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

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

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

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

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

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

CLIまたはAPIを使用してGitリポジトリを更新するには、作成-更新コマンドを使用します。 アプリからGitリポジトリを削除すると、ワークスペースからのデプロイメントが強制されます。

重要

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

以前のバージョンにロールバックする​

Databricks Appsには単一のロールバックアクションはありません。ロールバックするには、アプリの以前の安定バージョンを再デプロイします。ステップは、アプリがGitリポジトリからデプロイされるか、ワークスペースフォルダーからデプロイされるかによって異なります。ロールバックするバージョンを選択するには、アプリ詳細ページの Deployments tabでアプリのデプロイ履歴を確認してください。Databricks アプリの詳細を表示するを参照してください。

CLIからアプリのデプロイメントを一覧表示するには、以下を実行します:

Bash
databricks apps list-deployments my-app

Git ベースのアプリをロールバックする​

アプリがGitリポジトリからデプロイされる場合は、目的のバージョンが含まれている以前のcommitまたはタグを再デプロイします。Gitは正確なソースをピン留めするため、これが最も信頼性の高いロールバック方法です。

  1. Databricksワークスペースで、アプリのアイコン。 アプリスイッチャーをクリックして Databricks Apps を選択し、アプリを選択します。
  2. [デプロイ] の横にある矢印をクリックし、 [別のソースを使用してデプロイ] を選択します。
  3. [ デプロイの作成 ] ダイアログで、 [ Git から ] tab を選択します。
  4. Git 参照 の場合は、ブランチ名、タグ、またはコミット SHA (たとえば、 main 、 v1.0.0 、またはコミット ハッシュ) を入力します。
  5. 参照タイプ には、ブランチ、タグ、コミットなどの参照のタイプを指定します。
  6. ソースコードのパス には、リポジトリ内のアプリコードへのパスを入力します。
  7. [デプロイ] をクリックします。

Databricks では、すべてのバージョンが再デプロイ可能な特定の commit またはタグにマッピングされるよう、本番運用アプリを Git からデプロイすることを推奨しています。Databricks Apps のベストプラクティスを参照してください。

ワークスペースソースアプリをロールバックする​

アプリがワークスペースフォルダーからデプロイされる場合は、ソースの安定版を再デプロイします。「Gitベースのアプリのロールバック」で説明されているように、アプリのソースをバージョン管理下に置き、安定したcommitまたはタグを再デプロイします。バージョン管理されていないワークスペースフォルダーからデプロイする場合は、ソースの安定したコピーをフォルダーに復元してから再デプロイします:

  1. ワークスペースフォルダ内のファイルを、ロールバック先のバージョンに置き換えます。
  2. アプリを選択し、 [デプロイ] をクリックして、そのフォルダーからデプロイします。

最後に成功したデプロイメントとその実行時期を確認するには、 [Deployments] Tab または databricks apps list-deployments を使用します。Databricks では、ロールバックを再現可能にするために、依存関係のバージョンを固定し、Git からデプロイすることをお勧めします。Databricks Apps のベストプラクティスを参照してください。

アプリデプロイコマンドの全リストについては、appsコマンド・グループを参照してください。

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

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

  • ログでエラー メッセージまたはランタイム出力を確認します。
  • app.yaml構文と設定を検証します。
  • envセクションのシークレットと環境変数が適切に解決されることを確認します。
  • 必要な依存関係がすべて含まれているかインストールされているかを確認します。
  • ワークスペースでプライベートサービスコネクトまたは制限付き送信ネットワークポリシーを使用している場合は、必要なドメインが許可されていることを確認してください。プライベートサービスコネクト環境において、送信許可リストのエントリが欠落していることは、デプロイメント失敗の一般的な原因です。プライベートサービスコネクト環境でアプリをデプロイする方法を参照してください。

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

  • プライベートリポジトリの場合は、アプリのサービスプリンシパルにGit認証情報が設定されていることを確認してください。
  • Gitリポジトリ URL が正しいこと、およびGit参照 (ブランチ、タグ、またはコミット) がリポジトリに存在することを確認してください。
  • ワークスペース管理者がGitのみのデプロイメントを強制する場合、 Gitリポジトリが構成されていない限り、アプリをデプロイしたり起動したりすることはできません。
  • CLI、API、または宣言型自動化バンドルからデプロイする場合は、まずアプリを作成し、次にGit認証情報をアプリのサービスプリンシパルに追加してください。

その他のリソース​