メインコンテンツまでスキップ

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 パラメーターの値を渡します。

YAML
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 ボリュームへのパスを含む環境変数を設定します。

YAML
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 参照しています。

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

アプリ コードでシークレットを参照するには、 name フィールドの値 (この例ではSECRET_KEY ) を使用して、構成されたキー値を参照します。

Python
secret_value = os.getenv('SECRET_KEY')

「ベスト プラクティス: シークレットを使用して Databricks アプリの機密情報を格納する」を参照してください。

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

ストリームリットが使用するポート。 この値は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 に設定されています。