Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aplikasi Databricks dapat menyertakan dependensi Python, dependensi Node.js, atau keduanya. Anda mendeklarasikan dependensi dalam file khusus bahasa yang Azure Databricks instal saat Anda menyebarkan aplikasi:
- Gunakan file
requirements.txtuntuk paket Python yang diinstal menggunakanpip. Lihat Menentukan dependensi Python denganpip. - Gunakan file
pyproject.tomluntuk paket Python yang diinstal menggunakanuv. Lihat Menentukan dependensi Python denganuv. - Gunakan file
package.jsonuntuk paket Node.js yang diinstal dengannpmataupnpm. Lihat Menentukan dependensi Node.js.
Tentukan dependensi Python dengan pip
Aplikasi yang menggunakan pip dilengkapi dengan sekumpulan pustaka Python yang telah diinstal sebelumnya. Untuk menentukan pustaka Python tambahan, gunakan requirements.txt file. Jika ada paket yang tercantum yang cocok dengan yang telah diinstal sebelumnya, versi dalam file Anda akan mengambil alih default.
Aplikasi berskala horizontal (Beta) yang dikonversi dari aplikasi standar dapat menolak pustaka yang telah diinstal sebelumnya dan berjalan pada gambar OS dasar yang bersih sebagai gantinya. Lihat Menonaktifkan pustaka Python prainstal untuk aplikasi Databricks.
Contohnya:
# 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
Pustaka Python yang telah diinstal sebelumnya
pipAplikasi berbasis ini menyertakan pustaka Python prainstal berikut. Anda tidak perlu menambahkannya ke requirements.txt Anda kecuali jika Anda memerlukan versi yang berbeda.
| Perpustakaan | Versi |
|---|---|
| databricks-sql-connector | 3.4.0 |
| databricks-sdk | 0.33.0 |
| mlflow-skinny (versi ringan) | 2.16.2 |
| gradio | 4.44.0 |
| Streamlit | 1.38.0 |
| mengkilap | 1.1.0 |
| Dash | 2.18.1 |
| Labu | 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 |
| komponen dash-mantine | 0.14.4 |
| dash-bootstrap-components | 1.6.0 |
| plotly | 5.24.1 |
| plotly-resampler | 0.10.0 |
Tentukan dependensi Python dengan uv
Jika aplikasi Anda menggunakan uv untuk manajemen dependensi, tentukan dependensi Python dalam pyproject.toml file, bukan requirements.txt. Aplikasi berbasis uv tidak menyertakan pustaka prainstal, jadi Anda harus mendeklarasikan semua dependensi dalam pyproject.toml. Anda juga dapat menentukan versi Python apa pun menggunakan kolom requires-python, tidak seperti aplikasi berbasis pip, yang menggunakan Python 3.11.
Hal yang sama berlaku untuk aplikasi yang diskalakan secara horizontal dan tidak menggunakan pustaka pra-instal. Lihat Menonaktifkan pustaka Python prainstal untuk aplikasi Databricks.
Selama penyebaran, Databricks Apps memilih strategi penginstalan berdasarkan file mana yang ada:
- Jika
requirements.txtada, aplikasi ini menggunakanpipuntuk menginstal dependensi, terlepas dari apakahpyproject.tomljuga ada.requirements.txtselalu diutamakan. - Jika
requirements.txttidak ada dan baikpyproject.tomldanuv.lockada, aplikasi menggunakanuvuntuk menginstal dependensi dari file kunci.
Penginstal uv membuat dan mengelola lingkungan virtualnya sendiri, sehingga Anda tidak perlu membuat direktori .venv.
Contoh berikut menunjukkan minimal pyproject.toml untuk aplikasi Databricks:
[project]
name = "my-app"
requires-python = ">=3.11"
dependencies = [
"dash==2.10.0",
"requests==2.31.0",
]
Untuk menggunakan uv, Anda harus menyertakan file uv.lock bersama dengan file pyproject.toml. Hasilkan itu dengan menjalankan uv lock secara lokal dan sertakan di direktori aplikasi Anda.
Menentukan dependensi Node.js
Untuk menentukan pustaka Node.js, sertakan file package.json di root aplikasi Anda. Azure Databricks mendukung npm dan pnpm, dan memilih manajer paket berdasarkan file kunci yang Anda sertakan:
- Jika
pnpm-lock.yamlada, aplikasi menggunakanpnpm. Lihat Gunakanpnpm. - Jika tidak, aplikasi menggunakan
npm. - Jika keduanya
pnpm-lock.yamldanpackage-lock.jsonhadir,pnpmdiutamakan.
Misalnya, package.json file untuk aplikasi React menggunakan Vite mungkin terlihat seperti ini:
{
"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"
}
}
Nota
Cantumkan semua paket yang diperlukan untuk langkah build di bawah dependencies, bukan devDependencies. Jika Anda mengatur NODE_ENV=production dalam variabel lingkungan Anda, proses penyebaran melompati penginstalan devDependencies.
Menggunakan pnpm
Untuk melakukan build dengan pnpm, sertakan file pnpm-lock.yaml di samping package.json Anda. Hasilkan itu dengan menjalankan pnpm install secara lokal dan sertakan di direktori aplikasi Anda. Azure Databricks menyediakan pnpm melalui Corepack.
Perhatikan persyaratan berikut untuk pnpm aplikasi:
- Dependensi diinstal dengan
pnpm install --frozen-lockfile, jadipnpm-lock.yamlharus tetap sinkron denganpackage.json. Jika mereka menyimpang, build gagal alih-alih memperbarui file kunci. Regenerasi file kunci denganpnpm installsetelah Anda mengubah dependensi. - Anda harus menentukan perintah mulai di
app.yaml. Tidak sepertinpmaplikasi,pnpmaplikasi tidak kembali ke skrip defaultstart. Lihat Mengonfigurasi eksekusi aplikasi Databricks denganapp.yaml.
Untuk proyek pnpm workspace (yang memiliki file pnpm-workspace.yaml), beberapa perintah app.yaml dijalankan pnpm secara rekursif. Misalnya, langkah build atau start mungkin berjalan pnpm -r run build. Perintah ini harus memanggil corepack pnpm alih-alih pnpm sehingga perintah berlapis diselesaikan dengan benar.
Hindari konflik versi
Ikuti panduan ini untuk menghindari konflik versi:
- Untuk aplikasi berbasis
pip, mengganti paket yang sudah terpasang dapat menyebabkan masalah kompatibilitas jika versi yang Anda tentukan berbeda secara signifikan dari yang sudah terpasang. - Selalu uji aplikasi Anda untuk memverifikasi bahwa perubahan versi paket tidak menimbulkan kesalahan.
- Menyematkan versi eksplisit dalam
requirements.txtmembantu mempertahankan perilaku aplikasi yang konsisten di seluruh penyebaran. - Saat menggunakan
uv, sertakan berkasuv.lockuntuk instalasi yang sepenuhnya dapat direproduksi di setiap deployment.
Penginstalan dan manajemen dependensi
Azure Databricks menginstal pustaka yang ditentukan dalam requirements.txt, pyproject.toml, dan package.json langsung pada kontainer yang berjalan pada komputasi khusus Anda. Anda bertanggung jawab untuk mengelola dan menambal dependensi ini.
Anda dapat menentukan pustaka dari beberapa sumber dalam file dependensi Anda:
- Pustaka yang diunduh dari repositori publik seperti PyPI dan npm
- Repositori privat yang mengautentikasi menggunakan kredensial yang disimpan dalam rahasia Azure Databricks
- Pustaka yang disimpan di direktori Anda
/Volumes/(misalnya,/Volumes/<catalog>/<schema>/<volume>/<path>)
Menginstal dari repositori privat
Untuk menginstal paket dari repositori privat, konfigurasikan variabel lingkungan untuk autentikasi. Misalnya, atur PIP_INDEX_URL untuk menunjuk ke repositori privat Anda:
env:
- name: PIP_INDEX_URL
valueFrom: my-pypi-secret
Konfigurasi jaringan ruang kerja Anda harus mengizinkan akses ke repositori privat. Lihat Mengonfigurasi jaringan untuk Aplikasi Databricks.
Menginstal file roda dari volume Unity Catalog
Untuk menginstal paket Python dari berkas wheel yang disimpan dalam volume Unity Catalog:
- Tambahkan volume Katalog Unity sebagai sumber daya ke aplikasi Anda. Lihat Katalog Unity Volume.
- Referensikan jalur file roda lengkap langsung di :
requirements.txt
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl
Nota
Referensi variabel lingkungan tidak didukung di requirements.txt. Anda harus mengkodekan secara permanen jalur file roda penuh.
Untuk meningkatkan keamanan saat mengakses repositori paket eksternal, gunakan kontrol keluar tanpa server untuk membatasi akses ke repositori publik dan mengonfigurasi jaringan privat. Lihat Mengonfigurasi jaringan untuk Aplikasi Databricks.