Entwickeln von Databricks-Apps
Wichtig
Databricks-Apps befinden sich in der öffentlichen Vorschau.
Hinweis
Um Apps in Ihrem Databricks-Arbeitsbereich bereitzustellen und auszuführen, müssen Sie sicherstellen, dass Ihre Firewall die Domäne *.databricksapps.com
nicht blockiert.
Dieser Artikel enthält Details zum Erstellen von Daten und KI-Apps mit Databricks-Apps, einschließlich der Erstellung und Bearbeitung von Apps auf der Benutzeroberfläche, der Verwendung von Databricks-Plattformfeatures wie SQL-Lagerhäusern, Geheimschlüsseln und Databricks-Aufträgen, bewährte Methoden für die Entwicklung Ihrer Apps und wichtige Informationen für die Entwicklung von Apps mit unterstützten Frameworks.
Gewusst wie eine App in der Benutzeroberfläche von Databricks Apps erstellen?
Klicken Sie in der Randleiste auf "Neu ", und wählen Sie im Menü "App " aus.
Sie können mit einer vollständigen, vordefinierten Beispiel-App beginnen oder Ihren Quellcode und Artefakte verwenden.
- Um mit einer Beispiel-App zu beginnen, wählen Sie "Vorlage" aus, klicken Sie auf die Registerkarte für Ihr bevorzugtes Framework, und wählen Sie aus der Liste der Apps aus.
- Um eine App mit Ihrem Code zu erstellen, wählen Sie "Benutzerdefiniert" aus.
Klicken Sie auf Weiter.
Geben Sie im Feld "App-Name " einen Namen für die App ein, und geben Sie optional eine Beschreibung ein.
Hinweis
- Der Name, der einer Databricks-App zugewiesen ist, kann nach dem Erstellen der App nicht geändert werden, und jeder Benutzer mit Zugriff auf einen Azure Databricks-Arbeitsbereich kann die Namen und den Bereitstellungsverlauf aller Databricks-Apps im Arbeitsbereich sehen. Darüber hinaus ist der App-Name in Datensätzen enthalten, die in Systemtabellen geschrieben wurden. Aufgrund dieser Sichtbarkeit sollten Sie beim Benennen Ihrer Databricks-Apps keine vertraulichen Informationen einschließen.
- Der Name muss im Azure Databricks-Arbeitsbereich eindeutig sein, der die App hostet und nur Kleinbuchstaben, Zahlen und Bindestriche enthalten darf.
Wenn Sie "Benutzerdefiniert" ausgewählt haben, klicken Sie auf "App erstellen". Wenn Sie "Vorlage" ausgewählt haben, konfigurieren Sie die erforderlichen Ressourcen, und klicken Sie auf "App erstellen und bereitstellen". Siehe "Databricks-Plattformfeatures zuweisen" zu einer Databricks-App.
Die Seite mit den App-Details wird angezeigt, nachdem Sie auf "App erstellen und bereitstellen" oder "App erstellen" geklickt haben. Wenn Sie "Vorlage" ausgewählt haben, erstellt Databricks Apps Ihre App und stellt dann die App bereit, einschließlich des Beispielcodes aus der Vorlage und der erforderlichen Konfiguration für die App. Die Detailseite für die App zeigt:
- Der Status der App-Erstellung und -Bereitstellung.
- Die Schritte, mit denen Sie die Entwicklung der App lokal fortsetzen können, einschließlich des Kopierens der App-Artefakte in Ihre lokale Umgebung und das Synchronisieren lokaler Änderungen zurück zum Azure Databricks-Arbeitsbereich.
Wenn Sie "Benutzerdefiniert" ausgewählt haben, erstellt Databricks Apps Ihre App. Da Sie den Code und die Artefakte für Ihre App hinzufügen müssen, müssen Sie die App als separaten Schritt bereitstellen. Die Detailseite für die App zeigt:
- Der Status der App-Erstellung.
- Die Schritte, mit denen Sie den Code und Artefakte der App aus Ihrer lokalen Entwicklungsumgebung mit Ihrem Azure Databricks-Arbeitsbereich synchronisieren und die App bereitstellen können.
Informationen zum Einrichten einer lokalen Entwicklungsumgebung, zum Erstellen oder Aktualisieren des Codes und der Konfiguration für Ihre App lokal sowie zum Synchronisieren und Bereitstellen der App in Ihrem Azure Databricks-Arbeitsbereich finden Sie unter "Erste Schritte mit Databricks-Apps".
Wenn Sie "Vorlage" ausgewählt haben und Ihre App-Artefakte aus dem Arbeitsbereich in Ihre lokale Entwicklungsumgebung kopieren möchten, können Sie die Databricks CLI verwenden:
databricks workspace export-dir <workspace-path> <target-path>
Ersetzen Sie:
<workspace-path>
mit dem Pfad zum Verzeichnis der Arbeitsbereichsdateien, das Ihren App-Code und Artefakte enthält.<target-path>
mit einem Pfad in Ihrer lokalen Umgebung, in den die Dateien kopiert werden sollen.
Zuweisen von Databricks-Plattformfeatures zu einer Databricks-App
Hinweis
Für die Verwendung von Databricks SQL benötigen Dienstprinzipale Zugriff auf ein SQL-Warehouse und alle Tabellen, auf die von Abfragen zugegriffen wird.
Um Features der Databricks-Plattform wie Databricks SQL, Databricks Jobs, Mosaik AI Model Serving und Databricks Geheimschlüssel zu verwenden, fügen Sie diese Features ihrer App als Ressourcen hinzu. Sie können Ressourcen hinzufügen, wenn Sie eine App erstellen oder bearbeiten.
Klicken Sie auf der Karte "Neue App erstellen" oder "App bearbeiten" auf "Erweiterte Einstellungen>+ Ressource hinzufügen", und wählen Sie den Ressourcentyp aus.
Füllen Sie je nach Ressourcentyp die Felder aus, die zum Konfigurieren der Ressource erforderlich sind, einschließlich des Felds "Ressource" . Dieser Schlüssel wird später verwendet, um auf die Ressource zu verweisen.
Klicken Sie auf Speichern.
Fügen Sie einen Eintrag für die Ressource in der
app.yaml
Konfigurationsdatei mithilfe des SQL Warehouse-Ressourcenschlüssels hinzu. Da dies auf die Quelle des Parameterwerts und nicht auf den tatsächlichen Wert verweist, verwenden SievalueFrom
anstelle vonvalue
.env: - name: "DATABRICKS_WAREHOUSE_ID" valueFrom: "sql-warehouse"
Um auf die Ressource in Ihrem App-Code zu verweisen, verwenden Sie den Wert des
name
Felds (DATABRICKS_WAREHOUSE_ID
in diesem Beispiel), um auf den konfigurierten Schlüsselwert zu verweisen.import os os.getenv('DATABRICKS_WAREHOUSE_ID')
Weitere Beispiele für die Verwendung von Ressourcen mit Apps, einschließlich SQL Warehouses und Modell, die Endpunkte bedienen, finden Sie in den Vorlagenbeispielen beim Erstellen einer App und bewährten Methoden: Verwenden von geheimen Informationen zum Speichern vertraulicher Informationen für eine Databricks-App.
Anzeigen der Details für eine Databricks-App
So zeigen Sie die Detailseite für eine Databricks-App an:
- Klicken Sie auf der Randleiste auf Compute.
- Wechseln Sie zur Registerkarte "Apps ".
- Klicken Sie in der Spalte "Name " auf den App-Namen.
- Die Registerkarte "Übersicht " wird mit Details für die App angezeigt, einschließlich Status, Bereitstellungsort und zugeordneter Ressourcen.
- Um auf den Bereitstellungsverlauf der App zuzugreifen, wechseln Sie zur Registerkarte "Bereitstellungen ".
- Um die Protokolle für die App anzuzeigen, wechseln Sie zur Registerkarte "Protokolle ".
- Um die Laufzeitumgebung für die App anzuzeigen, einschließlich Umgebungsvariablen und installierter Pakete, wechseln Sie zur Registerkarte "Umgebung ".
Konfigurieren von Berechtigungen für Ihre Databricks-App
Um die Berechtigungen der App zu verwalten, müssen Sie über die CAN MANAGE
Berechtigung oder IS OWNER
berechtigung verfügen.
- Klicken Sie auf der Seite "App-Details" auf "Berechtigungen".
- Wählen Sie in den Berechtigungseinstellungen das Dropdownmenü "Benutzer", "Gruppe" oder "Dienstprinzipal auswählen" aus, und wählen Sie dann einen Benutzer, eine Gruppe, einen Dienstprinzipal oder alle Arbeitsbereichsbenutzer aus.
- Wählen Sie im Dropdownmenü „Berechtigung“ eine Berechtigung aus.
- Klicken Sie auf "Hinzufügen" und dann auf " Speichern".
Verwalten des Zustands für Ihre Databricks-App
Jeder Zustand, den Ihre App im Arbeitsspeicher behält, geht verloren, wenn sie neu gestartet wird. Wenn Ihre App den Zustand zwischen Neustarts beibehalten muss, speichern Sie den Zustand extern. Ihre App kann z. B. Databricks SQL, Arbeitsbereichsdateien oder Unity-Katalogvolumes verwenden, um den Status beizubehalten.
Protokollierung von Ihrer Databricks-App
Hinweis
Um Protokolle auf der Benutzeroberfläche von Databricks-Apps oder mit der App-URL anzuzeigen, muss sich Ihre App anmelden stdout
und stderr
.
Um die Standardausgabe und den Standardfehler für eine App anzuzeigen, klicken Sie auf der Detailseite für die App auf die Registerkarte "Protokolle ". Weitere Informationen zu einer Databricks-App finden Sie unter "Anzeigen der Details".
Sie können auch die Standardausgabe- und Standardfehlerprotokolle auf dem <appurl>/logz
Link anzeigen. Wenn beispielsweise die URL für Ihre App lautet https://my-app-1234567890.my-instance.databricksapps.com
, können Sie die Protokolle unter https://my-app-1234567890.my-instance.databricksapps.com/logz
anzeigen. Um die App-URL zu finden, wechseln Sie zur App-Detailseite.
Angeben von Bibliotheksabhängigkeiten für Ihre Databricks-App
Wenn Ihre App andere Python-Bibliotheken als die automatisch installierten Pakete erfordert, die mit Ihrer Bereitstellung installiert sind, verwenden Sie eine requirements.txt
Datei, um diese Bibliotheken zu definieren. Wenn ein Paket in Ihrer requirements.txt
Datei eines der automatisch installierten Pakete dupliziert, überschreibt die Version in Ihrer requirements.txt
Datei das automatisch installierte Paket.
Eine Liste der Pakete und Versionen, die als Teil ihrer App-Bereitstellung installiert sind, finden Sie unter "Installierte Python-Bibliotheken".
Welche HTTP-Header werden an Databricks-Apps übergeben?
Die folgenden X-Forwarded-*
Header werden vom Databricks Apps-Reverseproxy an Apps übergeben:
Header | Beschreibung |
---|---|
X-Forwarded-Host |
Der ursprüngliche Host oder die ursprüngliche Domäne, der vom Client angefordert wurde. |
X-Forwarded-Preferred-Username |
Der von IdP bereitgestellte Benutzername. |
X-Forwarded-User |
Der vom IdP bereitgestellte Benutzerbezeichner. |
X-Forwarded-Email |
Die von IdP bereitgestellte Benutzer-E-Mail. |
X-Real-Ip |
Die IP-Adresse des Clients, der die ursprüngliche Anforderung gestellt hat. |
X-Request-Id |
Die UUID der Anforderung. |
Welche Frameworks werden von Databricks Apps unterstützt?
Sie können die meisten Python-Frameworks verwenden, um Ihre Apps zu entwickeln. Wenn Sie Beispiele für die Verwendung bestimmter Frameworks anzeigen möchten, einschließlich Dash, Gradio und Streamlit, wählen Sie aus der Bibliothek der Vorlagen-Apps aus, wenn Sie eine neue App in der Benutzeroberfläche erstellen. Lesen Sie Gewusst wie erstellen Sie eine App in der Benutzeroberfläche von Databricks Apps?.
Informationen zu Streamlit-spezifischen Variablen, die in der Databricks Apps-Laufzeitumgebung festgelegt sind, finden Sie unter "Standardumgebungsvariablen" für Streamlit.
Bewährte Methode: Verwenden von geheimen Schlüsseln zum Speichern vertraulicher Informationen für eine Databricks-App
Databricks empfiehlt die Verwendung geheimer Schlüssel zum Speichern vertraulicher Informationen, z. B. Authentifizierungsanmeldeinformationen. Weitere Informationen zur Verwendung von geheimen Schlüsseln finden Sie unter Verwalten von geheimen Schlüsseln.
So verwenden Sie einen geheimen Schlüssel mit Ihrer App:
Konfigurieren Sie den geheimen Schlüssel als App-Ressource.
Fügen Sie einen Eintrag für den geheimen Schlüssel in der Konfigurationsdatei der App
app.yaml
hinzu.env: - name: "API_TOKEN" valueFrom: "api-token-value"
Um auf den geheimen Schlüssel in Ihrem App-Code zu verweisen, verwenden Sie den Wert des
name
Felds (API_TOKEN
in diesem Beispiel), um auf den konfigurierten Schlüsselwert zu verweisen.
token = os.getenv('API_TOKEN')
Bewährte Methode: Verwenden von Azure Databricks-Features für die Datenverarbeitung
Databricks Apps compute is designed for serving UI. Um sicherzustellen, dass Ihre Apps mehrere Benutzer effizient unterstützen können, sollten Sie Databricks-Features verwenden, um alles andere als einfache Datenverarbeitung durchzuführen. Verwenden Sie z. B. Databricks SQL für die Abfrageverarbeitung und das Speichern von Datasets, Datenbricks-Aufträgen für die Datenverarbeitung oder das Modell, das zum Abfragen von KI-Modellen dient.
Bewährte Methode: Befolgen von bewährten Methoden für sicheres Codieren
Databricks empfiehlt beim Entwickeln Ihrer Apps, einschließlich parametrisierender Abfragen, um SQL-Einfügungsangriffe zu vermeiden. Siehe die Anweisungsausführungs-API.
Wichtige Richtlinien für die Implementierung von Databricks-Apps
- Databricks Apps senden ein
SIGKILL
Signal 15 Sekunden nach einemSIGTERM
Signal, sodass Apps nach erhalt desSIGTERM
Signals nicht mehr als 15 Sekunden ordnungsgemäß herunterfahren sollten. Wenn eine App nach 15 Sekunden nicht beendet wurde, wird einSIGKILL
Signal gesendet, um den Prozess und alle untergeordneten Prozesse zu beenden. - Da Databricks-Apps als nicht privilegierter Systembenutzer ausgeführt werden, können sie keine Vorgänge ausführen, die in einem privilegierten Sicherheitskontext ausgeführt werden müssen, z. B. Vorgänge, die Stammbenutzerberechtigungen erfordern.
- Anforderungen werden von einem Reverseproxy weitergeleitet, sodass Apps nicht von den Ursprüngen der Anforderungen abhängen dürfen. Die Databricks Apps-Umgebung legt die erforderlichen Konfigurationsparameter für unterstützte Frameworks fest.
- Da das Databricks-App-Framework Transport Layer Security (TLS)-Verbindungen verwaltet, dürfen Ihre Apps keine TLS-Verbindungs- oder Handshake-Vorgänge ausführen.
- Ihre Apps müssen implementiert werden, um Anforderungen im HTTP/2-Klartextformat (H2C) zu verarbeiten.
- Databricks-Apps müssen HTTP-Server auf
0.0.0.0
hosten und die in derDATABRICKS_APP_PORT
Umgebungsvariable angegebene Portnummer verwenden. Siehe Umgebungsvariablen.