Databricks アプリの依存関係を管理する
各 Databricks アプリには、Python、Node.js、またはその両方の依存関係を含めることができます。これらの依存関係は、言語固有のファイルで定義します。
requirements.txtファイルを使用して、追加の Python パッケージを指定します。package.jsonファイルを使用して、 Node.js パッケージを指定します。
各アプリには、 Python ライブラリのセットもプリインストールされています。 「プリインストールされたPython ライブラリ」を参照してください。
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
バージョンの競合を回避
依存関係を定義する際には、以下の点に注意してください。
- プリインストールされたパッケージを上書きすると、指定したバージョンがプリインストールされたバージョンと大幅に異なる場合、互換性の問題が発生する可能性があります。
- 常にアプリをテストして、パッケージ バージョンの変更によってエラーが発生しないことを確認します。
requirements.txtで明示的なバージョンをピン留めすると、デプロイ間で一貫したアプリの動作を維持できます。
Node.js依存関係を定義する
ライブラリを定義するには Node.js アプリのルートに package.json ファイルを含めます。 デプロイ中に、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"
}
}
devDependenciesではなく、dependencies未満のnpm run buildに必要なすべてのパッケージをリストします。環境変数で NODE_ENV=production を設定すると、デプロイメント・プロセスは devDependenciesのインストールをスキップします。
依存関係のインストールと管理
requirements.txtとpackage.jsonで定義されたライブラリは、専用のコンピュートで実行されているコンテナに直接インストールされます。 これらの依存関係を管理し、パッチを適用するのはあなたの責任です。
依存関係ファイルでは複数のソースからのライブラリを指定できます。
- PyPIやnpmなどのパブリックリポジトリからダウンロードしたライブラリ
- Databricks シークレットに保存された資格情報を使用して認証するプライベート リポジトリ
/Volumes/ディレクトリに保存されているライブラリ (例:/Volumes/<catalog>/<schema>/<volume>/<path>)
プライベートリポジトリからインストールする
プライベート リポジトリからパッケージをインストールするには、認証用の環境変数を設定します。たとえば、 PIP_INDEX_URLプライベート リポジトリを指すように設定します。
env:
- name: PIP_INDEX_URL
valueFrom: my-pypi-secret
ワークスペースのネットワーク構成で、プライベート リポジトリへのアクセスを許可する必要があります。「Databricks アプリのネットワークの構成」を参照してください。
Unity Catalogボリュームからホイールファイルをインストールする
Unity Catalogボリュームに保存されている wheel ファイルからPythonパッケージをインストールするには:
- Unity Catalogボリュームをリソースとしてアプリに追加します。 Unity Catalogボリュームを参照してください。
- リソース キーを使用して
requirements.txt内のボリューム パスを参照します。
${VOLUME_PATH}/my_package-1.0.0-py3-none-any.whl
app.yamlの環境変数を設定します:
env:
- name: VOLUME_PATH
valueFrom: uc-volume # Use your custom resource key
外部パッケージ リポジトリにアクセスする際のセキュリティを強化するには、サーバレス出力制御を使用してパブリック リポジトリへのアクセスを制限し、プライベート ネットワークを構成します。 「Databricks アプリのネットワークの構成」を参照してください。