Delen via


Afhankelijkheden voor een Databricks-app beheren

Elke Databricks-app kan afhankelijkheden voor Python, Node.jsof beide bevatten. U definieert deze afhankelijkheden in taalspecifieke bestanden:

  • Gebruik een requirements.txt bestand om extra Python-pakketten op te geven.
  • Gebruik een package.json bestand om Node.js pakketten op te geven.

Elke app wordt ook geleverd met een vooraf geïnstalleerde set Python-bibliotheken. Zie vooraf geïnstalleerde Python-bibliotheken.

Python-afhankelijkheden definiëren

Als u aanvullende Python-bibliotheken wilt definiëren, gebruikt u een requirements.txt bestand. Als alle vermelde pakketten overeenkomen met vooraf geïnstalleerde pakketten, overschrijven de versies in uw bestand de standaardwaarden.

Voorbeeld:

# 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

Versieconflicten voorkomen

Houd rekening met het volgende wanneer u afhankelijkheden definieert:

  • Het overschrijven van vooraf geïnstalleerde pakketten kan compatibiliteitsproblemen veroorzaken als uw opgegeven versie aanzienlijk verschilt van de vooraf geïnstalleerde versie.
  • Test uw app altijd om ervoor te zorgen dat wijzigingen in pakketversies geen fouten veroorzaken.
  • Het vastmaken van expliciete versies in requirements.txt helpt consistent app-gedrag in implementaties te behouden.

Afhankelijkheden van Node.js definiëren

Als u Node.js bibliotheken wilt definiëren, neemt u een package.json bestand op in de hoofdmap van uw app. Tijdens de implementatie detecteert Azure Databricks dit bestand en voert npm install uit om alle daarin vermelde afhankelijkheden te installeren.

Een bestand voor een React-app met behulp van Vite kan er bijvoorbeeld package.json als volgt uitzien:

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

Opmerking

Vermeld alle pakketten die vereist zijn voor npm run build onder dependencies, niet devDependencies. Als u in uw omgevingsvariabelen instelt NODE_ENV=production , slaat het implementatieproces de installatie devDependenciesover.

Afhankelijkheden installeren en beheren

Bibliotheken die zijn gedefinieerd in requirements.txt en package.json worden rechtstreeks op de container geïnstalleerd die wordt uitgevoerd op uw toegewezen rekenproces. U bent verantwoordelijk voor het beheren en patchen van deze afhankelijkheden.

U kunt bibliotheken van meerdere bronnen opgeven in uw afhankelijkheidsbestanden:

  • Bibliotheken die zijn gedownload uit openbare opslagplaatsen, zoals PyPI en npm
  • Privéopslagplaatsen die worden geverifieerd met behulp van referenties die zijn opgeslagen in Azure Databricks-geheimen
  • Bibliotheken die zijn opgeslagen in uw /Volumes/ map (bijvoorbeeld /Volumes/<catalog>/<schema>/<volume>/<path>)

Installeren vanuit privéopslagplaatsen

Als u pakketten wilt installeren vanuit een privéopslagplaats, configureert u omgevingsvariabelen voor verificatie. Stel bijvoorbeeld PIP_INDEX_URL in dat deze verwijst naar uw privéopslagplaats:

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

De netwerkconfiguratie van uw werkruimte moet toegang tot de privéopslagplaats toestaan. Zie Netwerken configureren voor Databricks-apps.

Wielbestanden van Unity Catalog-volumes installeren

Python-pakketten installeren vanaf wheel-bestanden die zijn opgeslagen in Unity Catalog-volumes:

  1. Voeg het Unity Catalog-volume toe als een resource aan uw app. Zie Unity Catalog-volume.
  2. Verwijs rechtstreeks naar het volledige bestandspad van de wheel file in uw requirements.txt:
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl

Opmerking

Verwijzingen naar omgevingsvariabelen worden niet ondersteund in requirements.txt. U moet het pad naar het volledige wielbestand hardcoderen.

Om de beveiliging te verbeteren bij het openen van externe pakketrepositories, gebruik egress-beheersmaatregelen zonder server om de toegang tot openbare repositories te beperken en configureer privénetwerken. Zie Netwerken configureren voor Databricks-apps.