Databricks Appsの使用を開始する

プレビュー

Databricks Apps は パブリック プレビュー段階です。

この記事は、ローカル開発環境で簡単なアプリを作成し、そのアプリを Databricks ワークスペースにデプロイする手順の例を使用して、Databricks Apps の使用を開始するのに役立ちます。 この例では、次の操作について説明します。

  • アプリをローカルで作成してテストします。

  • ローカルでテストした後、Databricks CLI を使用してアプリを Databricks ワークスペースに追加します。

  • ワークスペースでアプリの詳細ページを表示する。

  • アプリのソース コードと成果物をワークスペースにコピーします。

  • ワークスペースでアプリの出力を表示する。

例をステップ実行する前に、Databricks ワークスペースとローカル開発環境が 要件を満たしていることを確認してください。

Databricks では、アプリの開発時に Python 仮想環境を使用することをお勧めします。 この記事の例では、 pipenv を使用して仮想環境を作成します。 詳細については、「 Python Virtual Environments: 入門」を参照してください。

この例は、Databricks アプリ テンプレート ライブラリでも使用できます。 「Databricks Apps UI でアプリを作成するにはどうすればよいですか?」を参照してください。

ステップ 1: ローカル環境を設定する

ターミナルを開き、次のコマンドを実行して次の操作を行います。

  • Python 仮想環境を作成して開始します。

  • サンプル アプリに必要な Python ライブラリをインストールします。

  • アプリのソースファイルと設定ファイル用のローカルディレクトリを作成します。

pipenv --python 3.11
pipenv shell
pip install gradio
pip install pandas
mkdir <app-dir-name>
cd <app-dir-name>

<app-dir-name> を、アプリ ファイルのローカル ディレクトリの名前 (gradio-hello-worldなど) に置き換えます。

ステップ 2: アプリのソースと設定を追加する

  1. テキスト エディターまたはお気に入りの統合開発環境 (IDE) で、次のコードを使用して新しい Python ファイルを作成し、作成したディレクトリに保存します。 この例では、Python ファイルのファイル名 app.py を使用しています。

    import gradio as gr
    import pandas as pd
    
    data = pd.DataFrame({'x': [x for x in range(30)],
                         'y': [2 ** x for x in range(30)]})
    
    # Display the data with Gradio
    with gr.Blocks(css='footer {visibility: hidden}') as gradio_app:
        with gr.Row():
            with gr.Column(scale=3):
                gr.Markdown('# Hello world!')
                gr.ScatterPlot(value=data, height=400, width=700,
                               container=False, x='x', y='y',
                               y_title='Fun with data', x_title='Apps')
    
    if __name__ == '__main__':
        gradio_app.launch()
    
  2. テキストエディタまたはIDEで、次の内容で新しいYAMLファイルを作成し、作成したディレクトリ内の app.yaml という名前のファイルに保存します。

    command: [
      "python",
      "<app-name.py>"
    ]
    

    <app-name.py> を、アプリのコードを含む Python ファイルの名前に置き換えます。たとえば、 app.py.

ステップ 3: アプリをローカルでテストする

  1. アプリをローカルでテストするには、ターミナルを開いて python <app-name.py>を実行し、 <app-name.py> をアプリのコードを含むファイルの名前に置き換えます。

    python app.py
    Running on local URL:  http://127.0.0.1:7860
    ...
    
  2. アプリの出力を表示するには、ブラウザー ウィンドウで http://127.0.0.1:7860 を開きます。

    hello world アプリの出力をローカルで表示する

ステップ 4: アプリをワークスペースにデプロイする

ワークスペースに新しいアプリを作成し、ローカル環境からワークスペースにコードをデプロイするには、ターミナルを開いて次の手順を実行します。

  1. Databricks ワークスペースにアプリを作成します。

    注:

    • Databricks アプリに割り当てられた名前は、アプリの作成後に変更することはできず、Databricks ワークスペースにアクセスできるすべてのユーザーは、ワークスペース内のすべての Databricks アプリの名前とデプロイ履歴を確認できます。 さらに、アプリ名はシステムテーブルに書き込まれるレコードに含まれます。 この可視性のため、Databricks アプリに名前を付けるときに機密情報を含めないでください。

    • 名前は、アプリをホストする Databricks ワークスペース内で一意である必要があり、小文字、数字、ハイフンのみを含める必要があります。

    databricks apps create <app-name>
    

    <app-name> をアプリの名前に置き換えます。たとえば、 gradio-hello-world.

  2. コマンドの完了時にワークスペースにアプリを表示するには、サイドバーで[コンピュート] をクリックしcreate コンピュートアイコン、[ アプリ] タブに移動して、[ 名前] 列でアプリへのリンクをクリックします。

    アプリの作成後にアプリの詳細ページを表示する
  3. ローカル環境から Databricks ワークスペースにファイルを同期します。 ローカル環境からワークスペースにファイルを同期するコマンド (ファイルのワークスペース パスを含む) は、 ソース ファイルを Databricks に同期する] の下にあります。 クリック コピーアイコン すると、このコマンドがコピーされます。

  4. ターミナルで、アプリ ファイルが含まれているディレクトリに切り替えて、コピーした sync コマンドを実行します。

    注:

    databricks sync コマンドで転送したくない特定のファイルまたはディレクトリがローカル app ディレクトリにある場合は、それらのファイルまたはディレクトリをローカル app ディレクトリの .gitignore ファイルに追加します。たとえば、アプリと同じディレクトリに Python 仮想環境ディレクトリがある場合、ディレクトリの名前を .gitignore ファイルに追加すると、 sync コマンドはファイルを転送するときにそのディレクトリをスキップします。

    databricks sync --watch . /Workspace/Users/user@databricks.com/gradio-hello-world
    ...
    Initial Sync Complete
    
  5. syncコマンドの完了時にワークスペース内の同期ファイルを表示するには、サイドバーのワークスペースアイコン 「ワークスペース 」をクリックし 、アプリ用に作成されたディレクトリに移動します。

  6. アプリをデプロイするには、ターミナルで次のコマンドを実行し、 <app-path> をアプリ ファイルへのワークスペース パスに置き換えます。

    databricks apps deploy gradio-hello-world --source-code-path <app-path>

  7. デプロイの状態を表示するには、アプリの詳細ページに移動します。

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

    デプロイされたアプリの出力を表示するには、詳細ページのアプリ名の下にあるアプリのリンクをクリックします。

    デプロイされたアプリへのリンク

次のステップ

Databricks Apps UI でアプリを作成する方法については、「 Databricks Apps UI でアプリを作成するにはどうすればよいですか?」を参照してください。