Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Databricks-App kann Python Abhängigkeiten, Node.js Abhängigkeiten oder beides enthalten. Sie deklarieren Abhängigkeiten in sprachspezifischen Dateien, die Azure Databricks beim Bereitstellen der App installiert:
- Verwenden Sie eine
requirements.txt-Datei für Python-Pakete, die mitpipinstalliert wurden. Siehe Definieren von Python-Abhängigkeiten mitpip. - Verwenden Sie eine
pyproject.tomlDatei für Python-Pakete, die mituvinstalliert wurden. Siehe Definieren von Python-Abhängigkeiten mituv. - Verwenden Sie eine Datei
package.jsonfür Node.js-Pakete, die mitnpmoderpnpminstalliert wurden. Siehe Definieren Node.js Abhängigkeiten.
Definieren von Python-Abhängigkeiten mit pip
Apps, die pip verwenden, enthalten eine Reihe vorinstallierter Python-Bibliotheken. Verwenden Sie eine requirements.txt Datei, um zusätzliche Python-Bibliotheken zu definieren. Wenn aufgelistete Pakete mit vorinstallierten Paketen übereinstimmen, setzen die Versionen in Ihrer Datei die Standardwerte außer Kraft.
Horizontal skalierte Apps (Beta), die aus Standard-Apps konvertiert wurden, können auf vorinstallierte Bibliotheken verzichten und stattdessen auf einem sauberen Basis-OS-Image ausgeführt werden. Siehe Abwahl vorinstallierter Python-Bibliotheken für Databricks-Apps.
Beispiel:
# 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
Vorinstallierte Python-Bibliotheken
pip-basierte Apps enthalten die folgenden vorinstallierten Python-Bibliotheken. Sie müssen sie Ihrem requirements.txt nicht hinzufügen, es sei denn, Sie benötigen eine andere Version.
| Bibliothek | Version |
|---|---|
| Databricks-SQL-Konnektor | 3.4.0 |
| Databricks-SDK | 0.33.0 |
| mlflow-skinny | 2.16.2 |
| Gradio | 4.44.0 |
| Streamlit | 1.38.0 |
| glänzend | 1.1.0 |
| Gedankenstrich | 2.18.1 |
| flask | 3.0.3 |
| fastapi | 0.115.0 |
| uvicorn[Norm] | 0.30.6 |
| gunicorn | 23.0.0 |
| huggingface-hub | 0.35.3 |
| dash-ag-grid | 31.2.0 |
| Gedankenstrich-Mantine-Komponenten | 0.14.4 |
| Gedankenstrich-Bootstrap-Komponenten | 1.6.0 |
| plotly | 5.24.1 |
| plotly-Resampler | 0.10.0 |
Definieren von Python-Abhängigkeiten mit uv
Wenn Ihre App uv für die Abhängigkeitsverwaltung verwendet, definieren Sie Python-Abhängigkeiten in einer pyproject.toml-Datei anstelle von requirements.txt.
uv-basierte Apps enthalten keine vorinstallierten Bibliotheken, daher müssen Sie alle Abhängigkeiten in Ihrer pyproject.tomlDeklaration deklarieren. Sie können auch jede Python Version mithilfe des requires-python Felds angeben, im Gegensatz zu pip-basierten Apps, die Python 3.11 verwenden.
Das gleiche gilt für horizontal skalierte Apps, die sich von vorinstallierten Bibliotheken abgemeldet haben. Siehe Abwahl vorinstallierter Python-Bibliotheken für Databricks-Apps.
Während der Bereitstellung wählt Databricks Apps eine Installationsstrategie aus, die darauf basiert, welche Dateien vorhanden sind:
- Falls
requirements.txtexistiert, verwendet die Apppipzur Installation von Abhängigkeiten, unabhängig davon, obpyproject.tomlauch vorhanden ist.requirements.txthat immer Vorrang. - Wenn
requirements.txtnicht vorhanden ist und sowohlpyproject.tomlals auchuv.lockvorhanden sind, verwendet die Appuvzum Installieren von Abhängigkeiten aus der Sperrdatei.
Das uv Installationsprogramm erstellt und verwaltet seine eigene virtuelle Umgebung, sodass Sie kein Verzeichnis erstellen .venv müssen.
Das folgende Beispiel zeigt ein Minimum pyproject.toml für eine Databricks-App:
[project]
name = "my-app"
requires-python = ">=3.11"
dependencies = [
"dash==2.10.0",
"requests==2.31.0",
]
Um uv zu verwenden, müssen Sie eine uv.lock-Datei neben Ihrem pyproject.toml einschließen. Generieren Sie die Datei, indem Sie uv lock lokal ausführen und sie anschließend in Ihr App-Verzeichnis aufnehmen.
Definieren von Node.js-Abhängigkeiten
Um Node.js Bibliotheken zu definieren, fügen Sie eine package.json Datei in den Stamm ihrer App ein. Azure Databricks unterstützt sowohl npm als auch pnpm und wählt den Paketmanager basierend auf der von Ihnen eingebundenen Lockdatei aus:
- Wenn
pnpm-lock.yamlvorhanden ist, verwendet die Apppnpm. Siehe Verwendenpnpm. - Andernfalls verwendet die App
npm. - Wenn sowohl
pnpm-lock.yamlals auchpackage-lock.jsonvorhanden sind, hatpnpmVorrang.
Beispielsweise könnte eine package.json Datei für eine React-App mit Vite wie folgt aussehen:
{
"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"
}
}
Hinweis
Führen Sie alle Pakete auf, die für den Buildschritt unter dependencies erforderlich sind, nicht unter devDependencies. Wenn Sie in Ihren Umgebungsvariablen festlegen NODE_ENV=production , überspringt der Bereitstellungsprozess die Installation devDependencies.
Verwenden Sie pnpm
Zum Erstellen mit pnpm fügen Sie neben Ihrer package.json eine pnpm-lock.yaml-Datei ein. Generieren Sie die Datei, indem Sie pnpm install lokal ausführen und sie anschließend in Ihr App-Verzeichnis aufnehmen. Azure Databricks wird über pnpm bereitgestellt.
Beachten Sie die folgenden Anforderungen für pnpm Apps:
- Abhängigkeiten werden mit
pnpm install --frozen-lockfileinstalliert, daher musspnpm-lock.yamlmitpackage.jsonsynchronisiert bleiben. Wenn sie driften, schlägt der Build fehl, anstatt die Sperrdatei zu aktualisieren. Erstellen Sie die Sperrdatei mitpnpm installneu, nachdem Sie die Abhängigkeiten geändert haben. - Sie müssen den Startbefehl in
app.yamlangeben. Im Gegensatz zunpmApps fallenpnpmApps nicht auf ein Standardskriptstartzurück. Siehe Konfigurieren der Databricks-App-Ausführung mitapp.yaml.
Bei pnpm-Arbeitsbereichsprojekten (bei denen eine pnpm-workspace.yaml-Datei vorhanden ist) werden einige app.yaml-Befehle pnpm rekursiv ausgeführt. Beispielsweise könnte ein Build- oder Startschritt pnpm -r run build ausführen. Diese Befehle müssen corepack pnpm anstelle von pnpm aufrufen, sodass die geschachtelten Befehle ordnungsgemäß aufgelöst werden.
Vermeiden von Versionskonflikten
Befolgen Sie die folgenden Richtlinien, um Versionskonflikte zu vermeiden:
- Bei
pip-basierten Apps kann das Überschreiben vorinstallierter Pakete Kompatibilitätsprobleme verursachen, wenn sich Ihre angegebene Version erheblich von der vorinstallierten Version unterscheidet. - Testen Sie Ihre App immer, um zu überprüfen, ob Änderungen der Paketversion keine Fehler verursachen.
- Durch das Festlegen expliziter Versionen in
requirements.txtwird das konsistente Verhalten der App über verschiedene Bereitstellungen hinweg gewährleistet. - Schließen Sie bei der Verwendung von
uveineuv.lockDatei ein, um vollständig reproduzierbare Installationen über mehrere Bereitstellungen hinweg zu ermöglichen.
Installation und Verwaltung von Abhängigkeiten
Azure Databricks installiert die in requirements.txt, pyproject.toml und package.json definierten Bibliotheken direkt auf dem Container, der auf Ihren dedizierten Compute-Ressourcen ausgeführt wird. Sie sind für das Verwalten und Patchen dieser Abhängigkeiten verantwortlich.
Sie können Bibliotheken aus mehreren Quellen in Ihren Abhängigkeitsdateien angeben:
- Bibliotheken, die aus öffentlichen Repositorys wie PyPI und npm heruntergeladen wurden
- Private Repositorys, die sich mit Anmeldeinformationen authentifizieren, die in Azure Databricks-Geheimnissen gespeichert sind
- In Ihrem
/Volumes/Verzeichnis gespeicherte Bibliotheken (z. B/Volumes/<catalog>/<schema>/<volume>/<path>. )
Installieren aus privaten Repositorys
Um Pakete aus einem privaten Repository zu installieren, konfigurieren Sie Umgebungsvariablen für die Authentifizierung. Legen Sie PIP_INDEX_URL beispielsweise fest, dass sie auf Ihr privates Repository verweist:
env:
- name: PIP_INDEX_URL
valueFrom: my-pypi-secret
Ihre Arbeitsbereichsnetzwerkkonfiguration muss den Zugriff auf das private Repository zulassen. Siehe Konfigurieren von Netzwerken für Databricks-Apps.
Installieren von Wheel-Dateien aus Unity Catalog-Volumes
So installieren Sie Python-Pakete aus Wheel-Dateien, die in Unity Catalog-Volumes gespeichert sind:
- Fügen Sie das Unity-Katalogvolume als Ressource zu Ihrer App hinzu. Siehe Unity-Katalogvolume.
- Verweisen Sie direkt auf den vollständigen Wheel-Dateipfad in Ihrem
requirements.txt:
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl
Hinweis
Umgebungsvariablenverweise werden in requirements.txt nicht unterstützt. Sie müssen den vollständigen Pfad zur Wheel-Datei hartcodieren.
Um die Sicherheit beim Zugriff auf externe Paketrepositorys zu verbessern, verwenden Sie serverlose Ausgangssteuerelemente, um den Zugriff auf öffentliche Repositorys einzuschränken und private Netzwerke zu konfigurieren. Siehe Konfigurieren von Netzwerken für Databricks-Apps.