Databricks アプリの構成

プレビュー

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

この記事では、Databricks Apps 環境で自動的に構成される設定と、アプリに必要なカスタム構成を定義する方法について説明します。

Databricks アプリ環境では、アプリを実行している Databricks ワークスペースの URL や、アプリの認証を実行するために必要な値など、いくつかの環境変数が設定されます。 ただし、アプリに追加のカスタム変数が必要な場合があります。 たとえば、アプリを実行するためのカスタム コマンドや、 SQLウェアハウスに接続するためのパラメーターが必要になる場合があります。 これらのカスタム構成パラメーターには、 app.yaml ファイルを使用します。

app.yamlファイルを使用したDatabricksアプリの構成

注:

アプリの設定ファイルでは、 .yaml または .yml の拡張子を使用できます。

アプリのカスタム構成を定義するには、プロジェクトに app.yaml ファイルを追加します。 次の表は、 app.yaml ファイルで定義できる設定と、構成ファイルの例を示しています。

app.yaml 設定

command

タイプ: sequence

アプリを実行するためのオプションの引数セット。 この設定は、アプリの実行にカスタム コマンドが必要な場合に使用します。 デフォルト値は [python, app.py]です。

コマンドはシェルでは実行されないため、環境で設定された値はアプリに渡されません。 アプリの実行に追加のパラメーターが必要な場合は、 env 構造体を使います。

この設定はオプションです。

env

タイプ: list

アプリに渡す環境変数を定義するキーと値のペアの省略可能なリスト用の最上位のキー。 valueは、実際のパラメーター値または値が格納されている場所への参照のいずれかです。リスト内の有効な項目は次のとおりです。

  • name: 環境変数の名前。

  • これは次のいずれかになります。

    • value: 環境変数の値。

    • valueFrom: 外部で定義された値の場合、値を含むソースの名前。 たとえば、シークレットの名前や、値を含むデータベーステーブルなどです。

この設定はオプションです。

Streamlit アプリのapp.yamlの例

次の例では、構成ファイルapp.yaml Streamlit アプリを実行し、 SQLウェアハウス ID と STREAMLIT_GATHER_USAGE_STATS パラメーターの値を渡します。

command: [
  "streamlit",
  "run",
  "app.py"
]
env:
  - name: "DATABRICKS_WAREHOUSE_ID"
    value: "quoz2bvjy8bl7skl"
  - name: "STREAMLIT_GATHER_USAGE_STATS"
    value: "false"

Flask アプリのapp.yamlの例

次の例では app.yaml 構成ファイルを使用して Gunicorn サーバーを使用して Flask アプリを実行し、Unity Catalog ボリュームへのパスを含む環境変数を設定します。

command:
  - gunicorn
  - app:app
  - -w
  - 4
env:
  - name: "VOLUME_URI"
    value: "/Volumes/catalog-name/schema-name/dir-name"

Databricks シークレットを参照する

アプリのリソース依存関係として設定されたシークレットを参照するには、app.yaml 設定の env セクションで valueFrom: <dependency_name> を設定します。dependency_name をシークレットリソースの設定のリソースキー値に置き換えます。Databricks アプリのリソースの依存関係の詳細については、「 Databricks アプリを Databricks サービスと統合する方法」を参照してください。 Databricks シークレットの管理の詳細については、「 シークレットの管理」を参照してください

次の例では、リソースの依存関係として設定されたシークレット app.yaml 参照しています。

command: [
  "python",
  "app.py"
]
env:
  - name: "SECRET_KEY"
    valueFrom: "secret-name"

Databricks Apps 環境変数

次の変数は Databricks Apps 環境で自動的に設定され、すべてのアプリで使用できます。 追加の環境変数を設定する必要がある場合は、 それらを app.yaml ファイルに追加します。

変数

説明

DATABRICKS_APP_NAME

実行中のアプリの名前。

DATABRICKS_WORKSPACE_ID

アプリが属する Databricks ワークスペースの一意の ID。

DATABRICKS_HOST

アプリが属する Databricks ワークスペースの URL。

DATABRICKS_APP_PORT

アプリがリッスンするネットワーク ポート。

DATABRICKS_CLIENT_ID

アプリに割り当てられた Databricks サービスプリンシパルのクライアント ID。

DATABRICKS_CLIENT_SECRET

OAuthDatabricksアプリに割り当てられた サービスプリンシパルの シークレット。

Streamlitのデフォルトの環境変数

次の Stream lit 固有の変数は、Databricks Apps 環境で自動的に構成され、Streamlit フレームワークを使用する Databricks アプリで使用できます。

変数

説明

STREAMLIT_SERVER_ADDRESS

Streamlitが使用するサーバーアドレス。 この値は 0.0.0.0 に設定され、オーバーライドすることはできません。

STREAMLIT_SERVER_PORT

Streamlitが使用するポート。 この値は DATABRICKS_APP_PORT に設定され、オーバーライドすることはできません。

STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION

Databricks アプリのリバース プロキシはクロスサイト リクエスト フォージェリ (XSRF) から保護するため、これは falseに設定されます。

STREAMLIT_SERVER_ENABLE_CORS

Databricks アプリのリバース プロキシはクロスオリジン リソース共有 (CORS) から保護するため、これは falseに設定されます。

STREAMLIT_SERVER_HEADLESS

これは true に設定されているため、Streamlitは起動時にブラウザウィンドウを開かずに実行されます。

STREAMLIT_BROWSER_GATHER_USAGE_STATS

これは、ユーザー統計がStreamlitに送信されないように false に設定されています。