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