Partager via


Gérer les dépendances pour une application Databricks

Chaque application Databricks peut inclure des dépendances pour Python, Node.jsou les deux. Vous définissez ces dépendances dans des fichiers spécifiques au langage :

  • Utilisez un requirements.txt fichier pour spécifier des packages Python supplémentaires.
  • Utilisez un package.json fichier pour spécifier Node.js packages.

Chaque application est également fournie avec un ensemble préinstallé de bibliothèques Python. Consultez les bibliothèques Python préinstallées.

Définir des dépendances Python

Pour définir des bibliothèques Python supplémentaires, utilisez un requirements.txt fichier. Si des packages répertoriés correspondent à ceux préinstallés, les versions de votre fichier remplacent les valeurs par défaut.

Par exemple:

# 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

Éviter les conflits de version

Gardez à l’esprit ce qui suit lorsque vous définissez des dépendances :

  • La substitution de packages préinstallés peut entraîner des problèmes de compatibilité si votre version spécifiée diffère considérablement de celle préinstallée.
  • Testez toujours votre application pour vous assurer que les modifications de version du package n’introduisent pas d’erreurs.
  • L’épinglage de versions explicites dans requirements.txt permet de maintenir un comportement d’application cohérent entre les déploiements.

Définir des dépendances Node.js

Pour définir les bibliothèques Node.js, incluez un fichier package.json à la racine de votre application. Pendant le déploiement, Azure Databricks détecte ce fichier et s’exécute npm install pour installer toutes les dépendances répertoriées dans celle-ci.

Par exemple, un package.json fichier pour une application React à l’aide de Vite peut ressembler à ceci :

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

Remarque

Répertorier tous les packages requis pour npm run build sous dependencies, et non devDependencies. Si vous définissez NODE_ENV=production dans vos variables d’environnement, le processus de déploiement ignore l’installation devDependencies.

Installation et gestion des dépendances

Les bibliothèques définies dans requirements.txt et package.json sont installées directement sur le conteneur fonctionnant sur votre calcul dédié. Vous êtes responsable de la gestion et de l'application de correctifs à ces dépendances.

Vous pouvez spécifier des bibliothèques à partir de plusieurs sources dans vos fichiers de dépendance :

  • Bibliothèques téléchargées à partir de référentiels publics tels que PyPI et npm
  • Référentiels privés qui s’authentifient à l’aide d’identifiants stockés dans les secrets Azure Databricks
  • Bibliothèques stockées dans votre /Volumes/ répertoire (par exemple, /Volumes/<catalog>/<schema>/<volume>/<path>)

Installer à partir de référentiels privés

Pour installer des packages à partir d’un référentiel privé, configurez les variables d’environnement pour l’authentification. Par exemple, définissez ce paramètre PIP_INDEX_URL pour qu’il pointe vers votre dépôt privé :

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

La configuration du réseau de votre espace de travail doit autoriser l’accès au référentiel privé. Consultez Configurer la mise en réseau pour Databricks Apps.

Installer des fichiers wheel à partir de volumes de catalogue Unity

Pour installer des packages Python à partir de fichiers wheel stockés dans des volumes de catalogue Unity :

  1. Ajoutez le volume du catalogue Unity en tant que ressource à votre application. Consultez le volume du catalogue Unity.
  2. Référencez le chemin d’accès complet du fichier de roue directement dans votre requirements.txt:
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl

Remarque

Les références de variables d’environnement ne sont pas prises en charge dans requirements.txt. Vous devez encoder en dur le chemin du fichier de roue complète.

Pour améliorer la sécurité lors de l’accès aux référentiels de packages externes, utilisez des contrôles de sortie serverless pour restreindre l’accès aux référentiels publics et configurer la mise en réseau privée. Consultez Configurer la mise en réseau pour Databricks Apps.