Bagikan melalui


Mengelola dependensi untuk aplikasi Databricks

Setiap aplikasi Databricks dapat menyertakan dependensi untuk Python, Node.js, atau keduanya. Anda menentukan dependensi ini dalam file khusus bahasa:

  • requirements.txt Gunakan file untuk menentukan paket Python tambahan.
  • Gunakan file package.json untuk menentukan paket Node.js.

Setiap aplikasi juga dilengkapi dengan sekumpulan pustaka Python yang telah diinstal sebelumnya. Lihat Pustaka Python yang telah diinstal sebelumnya.

Menentukan dependensi Python

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.

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

Hindari konflik versi

Ingatlah hal-hal berikut saat Anda menentukan dependensi:

  • Mengesampingkan paket yang telah diinstal sebelumnya dapat menyebabkan masalah kompatibilitas jika versi yang Anda tentukan berbeda secara signifikan dari yang telah diinstal sebelumnya.
  • Selalu uji aplikasi Anda untuk memastikan bahwa perubahan versi paket tidak menimbulkan kesalahan.
  • Menyematkan versi eksplisit dalam requirements.txt membantu mempertahankan perilaku aplikasi yang konsisten di seluruh penyebaran.

Menentukan dependensi Node.js

Untuk menentukan pustaka Node.js, sertakan file package.json di root aplikasi Anda. Selama penyebaran, Azure Databricks mendeteksi file ini dan menjalankan npm install untuk menginstal semua dependensi yang tercantum di dalamnya.

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 npm run build di bawah dependencies, bukan devDependencies. Jika Anda mengatur NODE_ENV=production dalam variabel lingkungan Anda, proses penyebaran melompati penginstalan devDependencies.

Penginstalan dan manajemen dependensi

Pustaka yang ditentukan dalam requirements.txt dan package.json diinstal langsung ke dalam kontainer yang beroperasi di lingkungan 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:

  1. Tambahkan volume Katalog Unity sebagai sumber daya ke aplikasi Anda. Lihat Katalog Unity Volume.
  2. 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 melakukan hardcode pada 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.