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

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ソースをいつでも切り替えることができます。Gitのみのデプロイメントを強制するを参照してください。

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

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

この設定を有効にすると:

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

アプリをデプロイする

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

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

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

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

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

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

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の認証情報は不要です。各プロバイダーの手順については、 「GitプロバイダーをDatabricksに接続する」を参照してください。

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

  1. アプリの詳細ページで、 [デプロイ] をクリックします。
  2. Gitから 選択します。
  3. Git 参照 の場合は、ブランチ名、タグ、またはコミット SHA (たとえば、 mainv1.0.0 、またはコミット ハッシュ) を入力します。
  4. 参照タイプ には、ブランチ、タグ、コミットなどの参照のタイプを指定します。
  5. (オプション) ソースコードパス には、リポジトリ内の特定のディレクトリへのパスを入力します。アプリはそのディレクトリを最上位ディレクトリとして扱い、そのディレクトリ外のファイルにはアクセスできません。パスを指定しない場合、Databricksはリポジトリのルートを使用します。
  6. [デプロイ] をクリックします。

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

注記

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

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

デプロイメント後の挙動

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

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

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

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

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

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

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

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

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

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

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

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

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

重要

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

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

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

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

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

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

次のステップ