Databricks アプリの構成
プレビュー
Databricks Apps は パブリック プレビュー段階です。
この記事では、Databricks Apps 環境で自動的に構成される設定と、アプリに必要なカスタム構成を定義する方法について説明します。
Databricks アプリ環境では、アプリを実行している Databricks ワークスペースの URL や、アプリの認証を実行するために必要な値など、いくつかの環境変数が設定されます。 ただし、アプリに追加のカスタム変数が必要な場合があります。 たとえば、アプリを実行するためのカスタム コマンドや、 SQLウェアハウスに接続するためのパラメーターが必要になる場合があります。 これらのカスタム構成パラメーターには、 app.yaml
ファイルを使用します。
app.yaml
ファイルを使用したDatabricksアプリの構成
注:
アプリの設定ファイルでは、 .yaml
または .yml
の拡張子を使用できます。
アプリのカスタム構成を定義するには、プロジェクトに app.yaml
ファイルを追加します。 次の表は、 app.yaml
ファイルで定義できる設定と、構成ファイルの例を示しています。
|
---|
タイプ: アプリを実行するためのオプションの引数セット。 この設定は、アプリの実行にカスタム コマンドが必要な場合に使用します。 デフォルト値は コマンドはシェルでは実行されないため、環境で設定された値はアプリに渡されません。 アプリの実行に追加のパラメーターが必要な場合は、 この設定はオプションです。 |
タイプ: アプリに渡す環境変数を定義するキーと値のペアの省略可能なリスト用の最上位のキー。
この設定はオプションです。 |
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 ワークスペースの一意の ID。 |
|
アプリが属する Databricks ワークスペースの URL。 |
|
アプリがリッスンするネットワーク ポート。 |
|
アプリに割り当てられた Databricks サービスプリンシパルのクライアント ID。 |
|
OAuthDatabricksアプリに割り当てられた サービスプリンシパルの シークレット。 |
Streamlitのデフォルトの環境変数
次の Stream lit 固有の変数は、Databricks Apps 環境で自動的に構成され、Streamlit フレームワークを使用する Databricks アプリで使用できます。
変数 |
説明 |
---|---|
|
Streamlitが使用するサーバーアドレス。 この値は 0.0.0.0 に設定され、オーバーライドすることはできません。 |
|
Streamlitが使用するポート。 この値は DATABRICKS_APP_PORT に設定され、オーバーライドすることはできません。 |
|
Databricks アプリのリバース プロキシはクロスサイト リクエスト フォージェリ (XSRF) から保護するため、これは |
|
Databricks アプリのリバース プロキシはクロスオリジン リソース共有 (CORS) から保護するため、これは |
|
これは |
|
これは、ユーザー統計がStreamlitに送信されないように |