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'
アプリ コードでシークレットを参照するには、 name
フィールドの値 (この例ではSECRET_KEY
) を使用して、構成されたキー値を参照します。
secret_value = os.getenv('SECRET_KEY')
「ベスト プラクティス: シークレットを使用して Databricks アプリの機密情報を格納する」を参照してください。
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 に設定され、オーバーライドすることはできません。 |
| ストリームリットが使用するポート。 この値はDATABRICKS_APP_PORTに設定されており、オーバーライドしてはいけません。 |
| Databricks アプリのリバース プロキシはクロスサイト リクエスト フォージェリ (XSRF) から保護するため、これは |
| Databricks アプリのリバース プロキシはクロスオリジン リソース共有 (CORS) から保護するため、これは |
| これは |
| これは、ユーザー統計がStreamlitに送信されないように |