各 Databricks アプリには、Python、Node.js、またはその両方の依存関係を含めることができます。 これらの依存関係は、言語固有のファイルで定義します。
-
requirements.txtファイルを使用して、と共にインストールされるpipパッケージを指定します。 「pipを使用した Python の依存関係の定義」を参照してください。 -
pyproject.tomlファイルを使用して、と共にインストールされるuvパッケージを指定します。 「uvを使用した Python の依存関係の定義」を参照してください。 -
package.jsonファイルを使用して、パッケージNode.js 指定します。 「 依存関係 Node.js 定義する」を参照してください。
を使用して Python の依存関係を定義する pip
pipを使用するアプリには、一連の事前インストール済みの Python ライブラリが付属しています。 追加の Python ライブラリを定義するには、 requirements.txt ファイルを使用します。 一覧表示されているパッケージがプレインストールされているパッケージと一致する場合、ファイル内のバージョンが既定値をオーバーライドします。
例えば次が挙げられます。
# Override default version of dash
dash==2.10.0
# Add additional libraries not pre-installed
requests==2.31.0
numpy==1.24.3
# Specify a compatible version range
scikit-learn>=1.2.0,<1.3.0
プレインストールされた Python ライブラリ
次の Python ライブラリは、 pip ベースのアプリ用にプレインストールされています。 別のバージョンが必要な場合を除き、 requirements.txt に含める必要はありません。
| 図書館 | バージョン |
|---|---|
| Databricks SQL コネクター | 3.4.0 |
| databricks-sdk(データブリックスSDK) | 0.33.0 |
| mlflow-skinny | 2.16.2 |
| gradio | 4.44.0 |
| streamlit | 1.38.0 |
| 光沢がある | 1.1.0 |
| ダッシュ | 2.18.1 |
| flask | 3.0.3 |
| fastapi | 0.115.0 |
| uvicorn[standard] | 0.30.6 |
| ガニーコーン (gunicorn) | 23.0.0 |
| huggingface-hub(ハギングフェイスのハブ) | 0.35.3 |
| dash-ag-grid | 31.2.0 |
| dash-mantine-components | 0.14.4 |
| dash-bootstrap-components (ダッシュ・ブートストラップ・コンポーネント) | 1.6.0 |
| plotly | 5.24.1 |
| plotly-resampler | 0.10.0 |
を使用して Python の依存関係を定義する uv
アプリで依存関係管理にuvを使用する場合は、pyproject.tomlではなく、requirements.txt ファイルで Python の依存関係を定義します。 プレインストールされたライブラリは、 uv ベースのアプリでは使用できません。
pyproject.toml内のすべての依存関係を宣言する必要があります。 Python 3.11 を使用する requires-python ベースのアプリとは異なり、pip フィールドを使用して任意の Python バージョンを指定することもできます。
デプロイ時に、Databricks Apps は、存在するファイルに基づいてインストール戦略を選択します。
-
requirements.txt存在する場合、pipも存在するかどうかに関係なく、アプリはpyproject.tomlを使用して依存関係をインストールします。requirements.txt常に優先されます。 -
requirements.txtが存在せず、pyproject.tomlとuv.lockの両方が存在する場合、アプリはuvを使用してロック ファイルから依存関係をインストールします。
uv インストーラーは独自の仮想環境を作成および管理するため、.venv ディレクトリを作成する必要はありません。
次の例は、Databricks アプリの最小 pyproject.toml を示しています。
[project]
name = "my-app"
requires-python = ">=3.11"
dependencies = [
"dash==2.10.0",
"requests==2.31.0",
]
uvを使用するには、uv.lockと共にpyproject.toml ファイルを含める必要があります。
uv lockローカルで実行して生成し、アプリ ディレクトリに含めます。
依存関係 Node.js 定義する
Node.js ライブラリを定義するには、アプリのルートに package.json ファイルを含めます。 デプロイ中、Azure Databricks はこのファイルを検出し、 npm install 実行して、一覧に表示されているすべての依存関係をインストールします。
たとえば、Vite を使用する React アプリの package.json ファイルは次のようになります。
{
"name": "react-fastapi-app",
"version": "1.0.0",
"private": true,
"type": "module",
"scripts": {
"build": "npm run build:frontend",
"build:frontend": "vite build frontend"
},
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0",
"typescript": "^5.0.0",
"vite": "^5.0.0",
"@vitejs/plugin-react": "^4.2.0",
"@types/react": "^18.2.0",
"@types/react-dom": "^18.2.0"
}
}
注
npm run buildではなく、dependenciesでdevDependenciesに必要なすべてのパッケージを一覧表示します。 環境変数で NODE_ENV=production を設定した場合、デプロイ プロセスでは devDependenciesのインストールはスキップされます。
バージョンの競合を回避する
依存関係を定義するときは、次の点に注意してください。
-
pipベースのアプリの場合、プレインストールされたパッケージをオーバーライドすると、指定したバージョンがプレインストールバージョンと大きく異なる場合、互換性の問題が発生する可能性があります。 - 常にアプリをテストして、パッケージのバージョンの変更でエラーが発生しないようにします。
-
requirements.txtで明示的なバージョンをピン留めすると、デプロイ間で一貫したアプリ動作を維持できます。 -
uvを使用する場合は、デプロイ全体で完全に再現可能なインストール用のuv.lockファイルを含めます。
依存関係のインストールと管理
requirements.txt、pyproject.toml、およびpackage.jsonで定義されているライブラリは、専用コンピューティングで実行されているコンテナーに直接インストールされます。 これらの依存関係の管理と修正プログラムの適用は、お客様の責任で行います。
依存関係ファイル内の複数のソースからライブラリを指定できます。
- PyPI や npm などのパブリック リポジトリからダウンロードされたライブラリ
- Azure Databricks シークレットに格納されている資格情報を使用して認証するプライベート リポジトリ
-
/Volumes/ディレクトリに格納されているライブラリ (/Volumes/<catalog>/<schema>/<volume>/<path>など)
プライベート リポジトリからインストールする
プライベート リポジトリからパッケージをインストールするには、認証用に環境変数を構成します。 たとえば、プライベート リポジトリを指す PIP_INDEX_URL を設定します。
env:
- name: PIP_INDEX_URL
valueFrom: my-pypi-secret
ワークスペース ネットワーク構成では、プライベート リポジトリへのアクセスを許可する必要があります。 Databricks Apps のネットワークの構成を参照してください。
Unity カタログ ボリュームからホイール ファイルをインストールする
Unity カタログ ボリュームに格納されているホイール ファイルから Python パッケージをインストールするには:
- Unity カタログ ボリュームをリソースとしてアプリに追加します。 Unity カタログボリュームを参照してください。
-
requirements.txtでフル ホイール ファイル パスを直接参照します。
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl
注
環境変数参照は、 requirements.txtではサポートされていません。 フル ホイール ファイル パスをハードコードする必要があります。
外部パッケージ リポジトリにアクセスするときのセキュリティを強化するには、サーバーレスエグレス制御を使用してパブリック リポジトリへのアクセスを制限し、プライベート ネットワークを構成します。 Databricks Apps のネットワークの構成を参照してください。