Abmelden von vorinstallierten Python-Bibliotheken für Databricks-Apps

Auf dieser Seite wird beschrieben, wie Sie die vorinstallierten Python Bibliotheken in einer horizontal skalierten Databricks-App deaktivieren, Eigene Abhängigkeiten verwalten und die vorinstallierten Bibliotheken später wieder aktivieren. Das Deaktivieren ist nur für horizontal skalierte Apps verfügbar, die aus einer Standard-App konvertiert wurden. Siehe Konvertieren einer Standard-App zur Verwendung der horizontalen Skalierung. Die horizontale Skalierung befindet sich in Der Betaversion.

Wenn Sie eine Standard-App in eine horizontal skalierbare App umwandeln, bindet Azure Databricks die umgewandelte App an die vorinstallierten Python-Bibliotheken, damit die vorhandenen Importe Ihrer App weiterhin funktionieren. Deaktivieren Sie die Ausführung der App auf einem sauberen Basisbetriebssystemimage, und deklarieren Sie jede Bibliothek selbst.

Abmelden von vorinstallierten Bibliotheken

Wenn Sie sich dagegen entscheiden, veranlasst dies Azure Databricks, Ihre nächste Bereitstellung auf Basis eines sauberen Basisbetriebssystem-Images zu erstellen. Die vorinstallierten Bibliotheken sind nicht mehr verfügbar, es sei denn, Sie deklarieren sie in requirements.txt oder pyproject.toml.

So melden Sie sich ab:

  1. Klicken Sie auf der Seite "App-Details " auf "Bearbeiten".
  2. Deaktivieren Sie im Schritt Configure das Kontrollkästchen Use preinstalled Python libraries.
  3. Klicke auf Speichern. Die derzeit ausgeführte Bereitstellung ist nicht betroffen.
  4. Stellen Sie Ihre App erneut auf der Registerkarte "Bereitstellungen" bereit . Diese neue Bereitstellung basiert auf dem sauberen Basisbetriebssystemimage.

Ihre Abhängigkeiten können transitiv vorinstallierte Bibliotheken enthalten, sodass nicht immer klar ist, welche Bibliotheken Ihre App direkt benötigt. Suchen Sie fehlende Bibliotheken in einer Test-App, bevor Sie sich in der Produktion abmelden:

  1. Erstellen Sie eine neue horizontal skalierte App. Neue horizontal skalierte Anwendungen werden bereits auf dem sauberen Basis-OS-Image ausgeführt, damit entspricht dies Ihrem Ziel nach dem Opt-out.
  2. Stellen Sie die Quelle Ihrer Produktions-App für die Test-App bereit. Aktualisieren Sie requirements.txt (oder pyproject.toml) und stellen Sie es erneut bereit, bis die Test-App startet, Anfragen verarbeitet und Ihre Tests besteht.
  3. Kopieren Sie die endgültigen Abhängigkeitsdeklarationen in die Quelle Ihrer Produktions-App.
  4. Führen Sie in der Produktions-App die Schritte unter "Abmelden von vorinstallierten Bibliotheken" aus, und stellen Sie die aktualisierte Quelle bereit.

Die Produktion wird weiterhin auf dem Image mit den vorinstallierten Bibliotheken ausgeführt, bis Ihre neue Bereitstellung Integritätsprüfungen bestanden hat, sodass dieser Ansatz Ausfallzeiten vermeidet, während Sie fehlende Abhängigkeiten von der Test-App erkennen.

Fehler nach der Abmeldung beheben

Der häufigste Fehler nach dem Opt-out ist ein ModuleNotFoundError beim App-Start, verursacht durch ein Framework oder eine Bibliothek, die Ihr Code implizit aus der vorinstallierten Sammlung importiert hat. So beheben Sie dieses Problem:

  1. Öffnen Sie die Registerkarte "Protokolle " auf der App-Detailseite.
  2. Suchen Sie den fehlenden Modulnamen in den Build- oder Laufzeitprotokollen.
  3. Fügen Sie das entsprechende Paket zu requirements.txt (oder pyproject.toml) hinzu, und stellen Sie es erneut bereit.

Eine neue Bereitstellung ersetzt die laufende Bereitstellung nur, wenn der App-Prozess in den ersten Sekunden nach dem Start weiterläuft. Eine Opt-out-Bereitstellung, die aufgrund eines fehlenden Imports sofort abstürzt, wird nie aktiv, und der Datenverkehr bleibt bei der zuvor funktionierenden Bereitstellung, während Sie die Abhängigkeitsliste korrigieren. Die Startprüfung ist oberflächlich, daher sollten Sie testen, ob Ihre App nach dem Opt-out tatsächlich Anfragen verarbeitet, anstatt sich darauf zu verlassen, dass die Prüfung fehlerhafte Bereitstellungen erkennt.

Vorinstallierte Bibliotheken wieder aktivieren

So kehren Sie nach der Deaktivierung zu den vorinstallierten Bibliotheken zurück:

  1. Klicken Sie auf der Seite "App-Details " auf "Bearbeiten".
  2. Aktivieren Sie im Schritt Configure das Kontrollkästchen Vorinstallierte Python Bibliotheken verwenden.
  3. Klicke auf Speichern.
  4. Stellen Sie Ihre App erneut auf der Registerkarte "Bereitstellungen" bereit . Diese neue Bereitstellung basiert auf dem Basisimage mit den vorinstallierten Bibliotheken.

Ihre requirements.txt und pyproject.toml gelten weiterhin, sodass alle expliziten Deklarationen, die Sie hinzugefügt haben, während Sie abgemeldet waren, beibehalten werden.

Note

Durch das Konvertieren einer horizontal skalierten App in eine Standard-App werden auch die vorinstallierten Bibliotheken wiederhergestellt: Die Standard-App wird mit ihnen neu erstellt, unabhängig davon, ob Sie sich abgemeldet haben. Wenn Sie die App später erneut in horizontal skaliert konvertieren, enthält sie die vorinstallierten Bibliotheken, bis Sie sich erneut abmelden.