Databricks Apps の構成
重要
Databricks Apps は Public Preview 段階です。
この記事では、Databricks Apps 環境で自動的に構成される設定について詳しく説明し、アプリに必要なカスタム構成を定義する方法について説明します。
Databricks Apps 環境では、アプリを実行している Azure Databricks ワークスペースの URL や、アプリの認証を実行するために必要な値など、いくつかの環境変数が設定されます。 ただし、アプリで追加のカスタム変数が必要になる場合があります。 たとえば、SQL ウェアハウスに接続するために、アプリまたはパラメーターを実行するためのカスタム コマンドが必要な場合があります。 これらのカスタム構成パラメーターには、 app.yaml
ファイルを使用します。
app.yaml
ファイルを使用した Databricks アプリの構成
Note
アプリ構成ファイルでは、 .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 カタログ ボリュームへのパスを含む環境変数を設定します。
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 Apps リソースの依存関係の詳細については、Databricks アプリと Azure Databricks サービスの統合操作方法に関するページを参照してください。 Databricks シークレットの管理の詳細については、 Manage シークレットを参照してください。
次の例 app.yaml
、リソース依存関係として構成されたシークレットを参照しています。
command: [
"python",
"app.py"
]
env:
- name: "SECRET_KEY"
valueFrom: "secret-name"
Databricks Apps 環境変数
次の変数は、Databricks Apps 環境で自動的に設定され、すべてのアプリで使用できます。 追加の環境変数を設定する必要がある場合は、 app.yaml ファイルに追加します。
Variable | 説明 |
---|---|
DATABRICKS_APP_NAME |
実行中のアプリの名前。 |
DATABRICKS_WORKSPACE_ID |
アプリが属する Databricks ワークスペースの一意の ID。 |
DATABRICKS_HOST |
アプリが属する Databricks ワークスペースの URL。 |
DATABRICKS_APP_PORT |
アプリがリッスンする必要があるネットワーク ポート。 |
DATABRICKS_CLIENT_ID |
アプリに割り当てられている Databricks サービス プリンシパルのクライアント ID。 |
DATABRICKS_CLIENT_SECRET |
アプリに割り当てられている Databricks サービス プリンシパルの OAuth シークレット。 |
Streamlit の既定の環境変数
次の Streamlit 固有の変数は、Databricks Apps 環境で自動的に構成され、Streamlit フレームワークを使用する Databricks アプリで使用できます。
Variable | 説明 |
---|---|
STREAMLIT_SERVER_ADDRESS |
Streamlit で使用するサーバー アドレス。 この値は 0.0.0.0 に設定され、オーバーライドすることはできません。 |
STREAMLIT_SERVER_PORT |
Streamlit で使用するポート。 この値はDATABRICKS_APP_PORTに設定され、オーバーライドすることはできません。 |
STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION |
Databricks Apps リバース プロキシはクロスサイト リクエスト フォージェリ (XSRF) から保護されるため、これは false に設定されます。 |
STREAMLIT_SERVER_ENABLE_CORS |
Databricks Apps リバース プロキシはクロスオリジン リソース共有 (CORS) から保護するため、これは false に設定されます。 |
STREAMLIT_SERVER_HEADLESS |
これは true に設定されているため、Streamlit は起動時にブラウザー ウィンドウを開かずに実行されます。 |
STREAMLIT_BROWSER_GATHER_USAGE_STATS |
これは、Streamlit にユーザー統計を送信しないように false に設定されます。 |