Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Une application Databricks peut inclure des dépendances Python, des dépendances Node.js ou les deux. Vous déclarez les dépendances dans des fichiers propres au langage qu’Azure Databricks installe lorsque vous déployez l’application :
- Utilisez un fichier
requirements.txtpour les paquets Python installés avecpip. Voir Définir des dépendances Python avecpip. - Utilisez un fichier
pyproject.tomlpour les paquets Python installés avecuv. Voir Définir des dépendances Python avecuv. - Utilisez un fichier
package.jsonpour les paquets Node.js installés avecnpmoupnpm. Consultez Définir Node.js dépendances.
Définir des dépendances Python avec pip
Les applications qui utilisent pip sont fournies avec un ensemble de bibliothèques Python préinstallées. 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.
Les applications mises à l’échelle horizontalement (bêta) converties à partir d’applications standard peuvent refuser les bibliothèques préinstallées et s’exécuter sur une image de système d’exploitation de base propre à la place. Consultez Désactiver les bibliothèques Python préinstallées pour les applications Databricks.
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
Bibliothèques Python préinstallées
Les applications basées sur pip incluent les bibliothèques Python préinstallées suivantes. Vous n’avez pas besoin de les ajouter à votre requirements.txt , sauf si vous avez besoin d’une autre version.
| Bibliothèque | Version |
|---|---|
| databricks-sql-connector | 3.4.0 |
| Kit de développement logiciel Databricks (SDK) | 0.33.0 |
| mlflow-skinny | 2.16.2 |
| gradio | 4.44.0 |
| streamlit | 1.38.0 |
| brillant | 1.1.0 |
| tiret | 2.18.1 |
| flask | 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 |
| dash-mantine-components | 0.14.4 |
| dash-bootstrap-components | 1.6.0 |
| plotly | 5.24.1 |
| plotly-resampler | 0.10.0 |
Définir des dépendances Python avec uv
Si votre application utilise uv pour la gestion des dépendances, définissez les dépendances Python dans un pyproject.toml fichier au lieu de requirements.txt. Les applications basées sur uv n’incluent pas de bibliothèques préinstallées ; vous devez donc déclarer toutes les dépendances dans votre pyproject.toml. Vous pouvez également spécifier n’importe quelle version de Python à l’aide du champ requires-python, contrairement aux applications basées sur pip, qui utilisent Python 3.11.
La même chose s’applique aux applications mises à l’échelle horizontalement qui ont choisi de ne pas disposer de bibliothèques préinstallées. Consultez Désactiver les bibliothèques Python préinstallées pour les applications Databricks.
Pendant le déploiement, Databricks Apps sélectionne une stratégie d’installation basée sur les fichiers présents :
- Si
requirements.txtexiste, l’application utilisepippour installer des dépendances, peu importe sipyproject.tomlest également présente.requirements.txtest toujours prioritaire. - S’il
requirements.txtn’existe pas et quepyproject.tomletuv.lockexistent, l’application utiliseuvpour installer des dépendances à partir du fichier de verrou.
Le uv programme d’installation crée et gère son propre environnement virtuel. Vous n’avez donc pas besoin de créer un .venv répertoire.
L’exemple suivant montre un minimum pyproject.toml pour une application Databricks :
[project]
name = "my-app"
requires-python = ">=3.11"
dependencies = [
"dash==2.10.0",
"requests==2.31.0",
]
Pour utiliser uv, vous devez inclure un uv.lock fichier en même temps que votre pyproject.toml. Générez-le en exécutant uv lock localement et incluez-le dans votre répertoire d’application.
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. Azure Databricks prend en charge npm et pnpm, et sélectionne le gestionnaire de paquets en fonction du fichier de verrouillage que vous incluez :
- Si
pnpm-lock.yamlest présent, l’application utilisepnpm. Voir Utiliserpnpm. - Sinon, l’application utilise
npm. - Si
pnpm-lock.yamletpackage-lock.jsonsont tous deux présents,pnpma priorité.
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 l’étape de génération 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.
Utiliser pnpm
Pour compiler avec pnpm, incluez un fichier pnpm-lock.yaml à côté de votre package.json. Générez-le en exécutant pnpm install localement et incluez-le dans votre répertoire d’application. Azure Databricks fournit pnpm via Corepack.
Notez les conditions requises suivantes pour pnpm les applications :
- Les dépendances sont installées avec
pnpm install --frozen-lockfile, doncpnpm-lock.yamldoivent rester synchronisées avecpackage.json. S’ils dérivent, la compilation échoue au lieu de mettre à jour le fichier de verrouillage. Régénérez le fichier de verrouillage avecpnpm installaprès avoir modifié les dépendances. - Vous devez spécifier la commande de démarrage dans
app.yaml. Contrairement aux applicationsnpm, les applicationspnpmn’utilisent pas le scriptstartpar défaut. Consultez Configurer l’exécution de l’application Databricks avecapp.yaml.
Pour les projets pnpm de l’espace de travail (lorsqu’un fichier pnpm-workspace.yaml est présent), certaines commandes app.yaml s’exécutent pnpm récursivement. Par exemple, une étape de génération ou de démarrage peut exécuter pnpm -r run build. Ces commandes doivent appeler corepack pnpm au lieu de pnpm, afin que les commandes imbriquées soient correctement résolues.
Éviter les conflits de version
Suivez ces instructions pour éviter les conflits de version :
- Pour les applications basées sur
pip, le remplacement de packages préinstallés peut entraîner des problèmes de compatibilité si votre version spécifiée diffère considérablement de la version préinstallée. - Testez toujours votre application pour vérifier que les modifications de version du package n’introduisent pas d’erreurs.
- L’épinglage de versions explicites dans
requirements.txtpermet de maintenir un comportement d’application cohérent entre les déploiements. - Lorsque vous utilisez
uv, incluez unuv.lockfichier pour les installations entièrement reproductibles entre les déploiements.
Installation et gestion des dépendances
Azure Databricks installe des bibliothèques définies dans requirements.txt, pyproject.tomlet package.json directement sur le conteneur s’exécutant 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.
Utiliser les référentiels de package par défaut au niveau de l’espace de travail
Important
Cette fonctionnalité est en version bêta. Pour l’utiliser, un administrateur de l’espace de travail doit activer Configuration des dépôts du workspace pour Databricks Apps depuis la page Aperçus. Consultez Gérer les préversions d’Azure Databricks.
Si un administrateur d’espace de travail configure les référentiels de package par défaut pour l’espace de travail, les applications de cet espace de travail installent Python et Node.js des packages à partir des référentiels configurés par l’espace de travail au lieu des registres PyPI et npm publics. Cela permet aux développeurs d’applications d’hériter automatiquement des paramètres de référentiel de package d’entreprise sans dupliquer la configuration dans chaque application, tout en autorisant les remplacements par application.
Pour configurer ces paramètres au niveau de l’espace de travail, consultez Configurer les référentiels de package par défaut.
paquets Python
Pendant la phase d’installation du package de la build, Databricks Apps hérite des paramètres de l’espace de travail pour les variables d’environnement suivantes :
PIP_INDEX_URLPIP_EXTRA_INDEX_URLPIP_CERTUV_INDEX_URLUV_EXTRA_INDEX_URLSSL_CERT_FILE
La configuration spécifique à l’application est prioritaire sur les valeurs par défaut de l’espace de travail. Si vous définissez l’une des variables d’environnement précédentes (à l’exception des paramètres de certificat indiqués ci-dessous) dans le fichier app.yaml de votre application, les valeurs de app.yaml remplacent les paramètres de l’espace de travail pour cette application.
Remarque
Les paramètres de certificat PIP_CERT et SSL_CERT_FILE utilisent toujours les valeurs configurées pour l’espace de travail et ne peuvent pas être remplacés dans app.yaml.
Warning
Testez vos applications une fois que l’administrateur de l’espace de travail a activé la préversion, et définissez PIP_INDEX_URL dans app.yaml si vous devez continuer à installer depuis un autre index.
packagesNode.js
Lorsqu’un administrateur d’espace de travail configure un registre npm par défaut, Databricks Apps écrit la configuration du registre de l’espace de travail dans le fichier de l’application .npmrc pendant le déploiement. Cela permet aux applications d’installer des packages Node.js, y compris des packages privés, à partir du registre configuré par l’espace de travail sans chaque application stockant son propre URL de Registre ou son jeton d’authentification.
Pour utiliser un registre différent pour une application spécifique, définissez la variable d’environnement dans le NPMRC fichier de app.yaml votre application pour référencer votre propre configuration npm. La configuration spécifique à l’application est prioritaire sur les paramètres par défaut de l’espace de travail.
Installer des fichiers wheel depuis des volumes Unity Catalog
Pour installer des packages Python à partir de fichiers wheel stockés dans des volumes de catalogue Unity :
- Ajoutez le volume du catalogue Unity en tant que ressource à votre application. Consultez le volume du catalogue Unity.
- Référencez directement le chemin d’accès complet du fichier wheel dans votre fichier
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 coder en dur le chemin d’accès complet du fichier wheel.
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.