Databricks アプリをデプロイする
Databricks アプリを作成して開発したら、デプロイする準備が整います。デプロイにより、アプリは Databricks ワークスペースでアクセス可能になり、プロジェクト ファイルで定義されている設定を使用して実行されます。
テンプレートからアプリを作成した場合、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
でコマンドが指定されていない場合、Databricks は、アプリに Python コードが含まれていても npm run start
を実行します。Python プロセスと Node.js プロセスの両方を実行するには、concurrently
などのツールを使用して両方を起動するカスタム start
スクリプトを定義します。たとえば、 concurrently "npm run start:node" "python my_app.py"
のようになります。
必要なすべてのNode.js 依存関係をpackage.json
Node.jsDatabricksで定義してください。これは、 Apps 環境に ライブラリがプレインストールされていないためです。
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 アプリの依存関係を管理する」を参照してください。
- シークレットまたは環境の値 -
app.yaml
のenv
セクションを使用する場合は、参照されているシークレットまたは外部ソースが正しく構成され、アクセス可能であることを確認します。「Databricks アプリにリソースを追加する」を参照してください。
さらに、アプリ サービスプリンシパル がソース コード フォルダーにアクセスできることを確認します。
アプリをデプロイする
- Databricks UI
- Databricks CLI
Databricks UI からアプリをデプロイするには:
- アプリ ファイルを Databricks ワークスペースにアップロードします。手順については、「 ファイルのインポート」を参照してください。
- サイドバーの
[ コンピュート ]をクリックします。
- [アプリ ] タブに移動し、[ 名前 ] 列にあるアプリへのリンクをクリックします。
- [ デプロイ ] をクリックし、アプリ ファイルをアップロードしたワークスペース内のフォルダーを選択します。
- 「選択」 をクリックし、「 デプロイ」 をクリックします。
- 設定を確認し、[ デプロイ] をクリックします。
CLI を使用してアプリをデプロイするには:
-
ターミナルを開き、アプリ ファイルが含まれているディレクトリに移動し、
sync
コマンドを実行して Databricks にアップロードします。パスは、ファイルをアップロードするワークスペースの場所に置き換えます。Bashdatabricks sync --watch . /Workspace/Users/my-email@org.com/my-app
特定のファイルまたはディレクトリを除外するには、ローカル アプリ ディレクトリの
.gitignore
ファイルに追加します。 -
ワークスペース内のファイルを表示するには、サイドバーの [ ワークスペース] をクリックし、アプリ用に作成されたディレクトリに移動します。
-
アプリをデプロイするには、ターミナルで次のコマンドを実行します。ソース コード パスを、アプリ ファイルのワークスペースの場所に置き換えます。
Bashdatabricks apps deploy my-app-name \
--source-code-path /Workspace/Users/my-email@org.com/my-app
デプロイが完了すると、Databricks は app.yaml
ファイルで定義されたcommand
に基づいてアプリを起動するか、デフォルトで python app.py
を実行します。
デプロイ後の動作
デプロイ後、アプリは管理された環境で実行されます。デプロイの状態を表示するには、アプリの概要ページに移動します。
デプロイされたアプリの出力を表示するには、アプリのリンクをクリックします。
「 ログ 」タブに移動して、デバッグとランタイム・モニタリングを行います。「Databricks アプリのログを表示する」を参照してください。
アプリを更新または再デプロイする
ソース コードに変更を加えた場合、 app.yaml
ファイルを更新した場合、または別のソース コード パスからデプロイする必要がある場合は、アプリを更新または再デプロイできます。再デプロイでは、アプリを最初から再作成しなくても、最新の更新プログラムが適用されます。
デプロイされたアプリに変更を加えるには:
- アプリのコードまたは
app.yaml
設定を更新します。 - Databricks ワークスペースの [アプリ ] ページに戻ります。
- アプリを選択し、もう一度 [デプロイ ] を選択します。ソース コード パスが変更された場合は、[ デプロイ ] の横にある矢印をクリックし、[ 別のソース コード パスを使用してデプロイ ] を選択します
デプロイの問題のトラブルシューティング
アプリのデプロイに失敗した場合、または期待どおりに実行されない場合は、次のトラブルシューティング手順を試してください。
- ログの確認 - ログ パネルでエラー メッセージまたはランタイム出力を表示します。
app.yaml
の検証 - 構文が正しく、サポートされている設定が使用されていることを確認します。- シークレットと環境変数を確認する -
env
セクション内のすべての参照が正しく解決されることを確認します。 - 依存関係の確認 - 必要なすべてのパッケージが含まれているか、インストールされていることを確認します。