Udostępnij przez


Zarządzanie zależnościami dla aplikacji usługi Databricks

Każda aplikacja usługi Databricks może zawierać zależności dla języka Python, Node.jslub obu tych elementów. Te zależności definiuje się w plikach specyficznych dla języka:

  • requirements.txt Użyj pliku, aby określić dodatkowe pakiety języka Python.
  • Użyj pliku package.json, aby określić pakiety Node.js.

Każda aplikacja zawiera również wstępnie zainstalowany zestaw bibliotek języka Python. Zobacz Wstępnie zainstalowane biblioteki języka Python.

Definiowanie zależności języka Python

Aby zdefiniować dodatkowe biblioteki języka Python, użyj requirements.txt pliku. Jeśli jakiekolwiek pakiety wymienione są zgodne ze wstępnie zainstalowanymi pakietami, wersje w pliku zastępują wartości domyślne.

Przykład:

# 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

Unikanie konfliktów wersji

Podczas definiowania zależności należy pamiętać o następujących kwestiach:

  • Zastępowanie wstępnie zainstalowanych pakietów może powodować problemy ze zgodnością, jeśli określona wersja znacznie się różni od wstępnie zainstalowanej.
  • Zawsze testuj aplikację, aby upewnić się, że zmiany wersji pakietu nie powodują błędów.
  • Przypinanie jawnych wersji w requirements.txt pomaga utrzymać spójne działanie aplikacji we wszystkich wdrożeniach.

Definiowanie zależności Node.js

Aby zdefiniować biblioteki Node.js, dołącz package.json plik do katalogu głównego aplikacji. Podczas wdrażania usługa Azure Databricks wykrywa ten plik i uruchamia polecenie npm install w celu zainstalowania wszystkich zależności wymienionych w nim.

Na przykład package.json plik aplikacji React korzystającej z narzędzia Vite może wyglądać następująco:

{
  "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"
  }
}

Uwaga / Notatka

Wyświetl listę wszystkich pakietów wymaganych dla npm run build pod dependencies, a nie devDependencies. Jeśli ustawisz NODE_ENV=production w zmiennych środowiskowych, proces wdrażania pominie instalowanie devDependencies.

Instalacja zależności i zarządzanie nimi

Biblioteki zdefiniowane w programie requirements.txt i package.json są instalowane bezpośrednio w kontenerze uruchomionym w dedykowanym środowisku obliczeniowym. Odpowiadasz za zarządzanie tymi zależnościami i ich aktualizowanie.

Biblioteki z wielu źródeł można określić w plikach zależności:

  • Biblioteki pobrane z repozytoriów publicznych, takich jak PyPI i npm
  • Prywatne repozytoria uwierzytelniające się przy użyciu poświadczeń przechowywanych w tajemnicach Azure Databricks
  • Biblioteki przechowywane w /Volumes/ katalogu (na przykład /Volumes/<catalog>/<schema>/<volume>/<path>)

Instalowanie z repozytoriów prywatnych

Aby zainstalować pakiety z repozytorium prywatnego, skonfiguruj zmienne środowiskowe na potrzeby uwierzytelniania. Na przykład ustaw wartość PIP_INDEX_URL , aby wskazać repozytorium prywatne:

env:
  - name: PIP_INDEX_URL
    valueFrom: my-pypi-secret

Konfiguracja sieci obszaru roboczego musi zezwalać na dostęp do repozytorium prywatnego. Zobacz Konfigurowanie sieci dla aplikacji usługi Databricks.

Instalowanie plików wheel z woluminów Unity Catalog

Aby zainstalować pakiety języka Python z plików wheel przechowywanych w woluminach katalogu Unity Catalog:

  1. Dodaj wolumin katalogu Unity jako zasób w swojej aplikacji. Zobacz Unity Catalog wolumen.
  2. Odwołuj się bezpośrednio do ścieżki pliku pełnego koła w pliku requirements.txt:
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl

Uwaga / Notatka

Odwołania do zmiennych środowiskowych nie są obsługiwane w programie requirements.txt. Musisz zakodować ścieżkę pliku pełnego koła.

Aby zwiększyć bezpieczeństwo podczas uzyskiwania dostępu do zewnętrznych repozytoriów pakietów, należy użyć kontrolek ruchu wychodzącego bezserwerowego, aby ograniczyć dostęp do repozytoriów publicznych i skonfigurować sieć prywatną. Zobacz Konfigurowanie sieci dla aplikacji usługi Databricks.