Databricks アプリをデプロイする

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

テンプレートからアプリを作成する場合、Azure 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 でコマンドが指定されていない場合、Azure Databricksはnpm run startを実行します (アプリにコードPython含まれている場合でも)。 Pythonプロセスと Node.js プロセスの両方を実行するには、start などのツールを使用して両方を起動するカスタム concurrently スクリプトを定義します。 たとえば、 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 Service プリンシパル がソース コード フォルダーにアクセスできることを確認します。

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

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

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

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

アプリをデプロイする

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

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

Databricks ユーザーインターフェース

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

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

Databricks コマンドラインインターフェース (CLI)

CLI を使用してアプリをデプロイするには:

  1. ターミナルを開き、アプリ ファイルを含むディレクトリに移動します。

  2. sync コマンドを使用して、アプリ ファイルを Azure Databricks ワークスペースにアップロードします。 パスを、ファイルをアップロードするワークスペースの場所に置き換えます。

    databricks sync --watch . /Workspace/Users/my-email@org.com/my-app
    

    --watch フラグは同期プロセスを実行し続け、ファイルをローカルで変更すると自動的に変更をアップロードします。 特定のファイルまたはディレクトリを同期から除外するには、ローカル アプリ ディレクトリの .gitignore ファイルに追加します。 除外する一般的なファイルは、 node_modules/.env__pycache__/.DS_Store、および大きなデータ ファイルまたはビルド成果物です。

  3. ワークスペース内のファイルを表示して、アップロードを確認します。 [アプリ] アイコン をクリックします。アプリ スイッチャー >Analytics と AI をクリックし、[ワークスペース アイコンワークスペース] をクリックし、アプリ用に作成したディレクトリに移動します。

  4. 次のコマンドを実行して、アプリをデプロイします。 アプリ名とソース コードのパスを実際の値に置き換えます。

    databricks apps deploy my-app-name \
       --source-code-path /Workspace/Users/my-email@org.com/my-app
    

    CLI では、デプロイの進行状況が表示され、アプリがいつ実行されているかが確認されます。

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

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

Databricks ユーザーインターフェース

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

  1. Git リポジトリにアプリ ファイルをアップロードします。
  2. Databricks ワークスペースで、[ アプリ] アイコン をクリックします。アプリ スイッチャーをクリックし、[ Databricks Apps] を選択します。
  3. 編集する既存のアプリを選択するか、[ + アプリの作成 ] をクリックして カスタム アプリを作成します。 「カスタム Databricks アプリを作成する」を参照してください。
  4. Git の 構成 手順で、Git リポジトリの URL (たとえば、 https://github.com/org/repo) を入力し、Git プロバイダーを選択します。
  5. 新しいアプリの場合は、Git 参照 (ブランチ、タグ、またはコミット) を入力し、GitHub リポジトリの場合は、必要に応じて プッシュ イベント に自動デプロイを有効にします。 Git の自動デプロイを有効にするを参照してください。
  6. [ アプリの作成 ] または [保存] を クリックして、アプリの概要ページに戻ります。
  7. プライベート リポジトリの場合、アプリのサービス プリンシパルには Git 資格情報が構成されている必要があります。 アプリの概要ページで、[ Git 資格情報の構成] をクリックします。 Git 資格情報を追加するには、アプリに対する CAN MANAGE アクセス許可が必要です。 パブリック リポジトリでは、Git 資格情報は必要ありません。 各プロバイダーの手順については、「 Git プロバイダーを Databricks に接続する」を参照してください。

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

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

Databricks コマンドラインインターフェース (CLI)

CLI を使用して Git からアプリをデプロイするには:

  1. Git リポジトリにアプリ ファイルをアップロードします。

  2. アプリの作成時にアプリで Git リポジトリを構成するか、既存のアプリに追加します。 サポートされているプロバイダーには、 gitHubgitHubEnterprisegitLabgitLabEnterpriseEditionbitbucketCloudbitbucketServerazureDevOpsServices、および awsCodeCommitが含まれます。

    Git リポジトリが構成された新しいアプリを作成するには、 create コマンドを使用します。

    databricks apps create my-app \
       --json '{"git_repository": {"url": "https://github.com/org/repo", "provider": "gitHub"}}'
    

    既存のアプリで Git リポジトリを追加または更新するには、 create-update コマンドを使用します。

    databricks apps create-update my-app \
       --json '{"update_mask": "git_repository", "git_repository": {"url": "https://github.com/org/repo", "provider": "gitHub"}}'
    
  3. プライベート リポジトリの場合は、アプリのサービス プリンシパルの Git 資格情報を構成します。 Git 資格情報を追加するには、アプリに対する CAN MANAGE アクセス許可が必要です。 パブリック リポジトリでは、Git 資格情報は必要ありません。

    CLI を使用してアプリのサービス プリンシパルに Git 資格情報を追加するには、次を実行します。

    databricks git-credentials create --json '{
      "git_provider": "gitHub",
      "git_email": "your-email@example.com",
      "personal_access_token": "YOUR_TOKEN",
      "principal_id": YOUR_SP_ID,
      "name": "GitHub credentials for SP"
    }'
    

    YOUR_SP_IDをアプリのサービス プリンシパル ID に置き換えます。 各プロバイダーの個人用アクセス トークンを取得する手順については、「 Git プロバイダーを Databricks に接続する」を参照してください。

  4. Git 参照を指定してアプリをデプロイします。 branchtag、またはcommitを指定できます (これらは相互に排他的です)。 必要に応じて、リポジトリ内のサブディレクトリからデプロイする source_code_path を含めます。

    databricks apps deploy my-app \
       --json '{"git_source": {"branch": "main"}}'
    

    特定のタグまたはコミットをデプロイするには:

    databricks apps deploy my-app \
       --json '{"git_source": {"tag": "v1.0.0"}}'
    
    databricks apps deploy my-app \
       --json '{"git_source": {"commit": "abc123def456"}}'
    

    リポジトリ内のサブディレクトリからデプロイするには:

    databricks apps deploy my-app \
       --json '{"git_source": {"branch": "main", "source_code_path": "apps/my-app"}}'
    

    CLI では、デプロイの進行状況が表示され、アプリがいつ実行されているかが確認されます。

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

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

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

Git の自動デプロイを有効にする

Important

Git からの自動デプロイは ベータ版です。 GitHubは、ベータ期間中にサポートされている唯一のプロバイダーです。

自動デプロイを有効にすると、Azure Databricks GitHub リポジトリに Webhook が作成され、構成されたブランチが新しいコミットを受け取るたびにアプリが再デプロイされます。 デプロイされたアプリは、手動で手順を実行しなくても、リポジトリと同期したままです。 リポジトリは 20 個の Webhook (GitHub Enterprise の場合は 250 個) に制限されています。

自動デプロイには、次のセットアップが必要です。

  • Azure Databricks GitHub アプリはリポジトリにインストールする必要があります。
  • リポジトリはプライベートである必要があります。 Databricks では、パブリック リポジトリからの自動デプロイはサポートされていません。
  • アプリのサービス プリンシパルには、リポジトリへのアクセス権を持つ Git 資格情報が必要です。 「 Git プロバイダーを Databricks に接続する」を参照してください

自動デプロイを有効にするには、git プロバイダーとしてGitHubを構成し、プッシュ イベントでの自動デプロイを有効にします。 これは、次のいずれかの場所で行うことができます。

Git 参照はブランチ名である必要があります。 タグは自動デプロイと互換性がありません。

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

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

Git のみのデプロイを適用する

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

Git デプロイを適用する場合:

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

デプロイ後の動作

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

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

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

デバッグとランタイム監視の [ ログ ] タブに移動します。 Databricks アプリのログ記録と監視を参照してください。

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

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

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

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

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

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

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

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

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

Important

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

デプロイに関する問題のトラブルシューティング

アプリのデプロイに失敗した場合、または予期したとおりに実行されない場合は、次のトラブルシューティング手順を試してください。

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

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

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

次のステップ