Freigeben über


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.comnicht 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?

  1. Klicken Sie in der Randleiste auf Neues Symbol "Neu ", und wählen Sie im Menü "App " aus.

  2. 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.

    Anzeigen der Seite zum Erstellen einer neuen Databricks-App

  3. Klicken Sie auf Weiter.

  4. 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.

    Anzeigen der Seite zum Benennen einer Databricks-App

    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.

    Anzeigen der Seite zum Benennen einer Databricks-App und Hinzufügen von Ressourcen

    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.

    Anzeigen der Details für eine vorlagebasierte Databricks-App

    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.

    Anzeigen der Details für eine vorlagebasierte Databricks-App

    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".

  5. 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.

  1. Klicken Sie auf der Karte "Neue App erstellen" oder "App bearbeiten" auf "Erweiterte Einstellungen>+ Ressource hinzufügen", und wählen Sie den Ressourcentyp aus.

    Hinzufügen eines SQL Warehouse als App-Ressource auf der Benutzeroberfläche

  2. 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.

  3. Klicken Sie auf Speichern.

  4. 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 Sie valueFrom anstelle von value.

    env:
      - name: "DATABRICKS_WAREHOUSE_ID"
        valueFrom: "sql-warehouse"
    
  5. 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:

  1. Klicken Sie auf der Randleiste auf Computesymbol Compute.
  2. Wechseln Sie zur Registerkarte "Apps ".
  3. Klicken Sie in der Spalte "Name " auf den App-Namen.
  4. 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.

  1. Klicken Sie auf der Seite "App-Details" auf "Berechtigungen".
  2. 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.
  3. Wählen Sie im Dropdownmenü „Berechtigung“ eine Berechtigung aus.
  4. 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/logzanzeigen. 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:

  1. Konfigurieren Sie den geheimen Schlüssel als App-Ressource.

    Hinzufügen eines geheimen Schlüssels als App-Ressource in der Benutzeroberfläche

  2. 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"
    
  3. 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 einem SIGTERMSignal, sodass Apps nach erhalt des SIGTERM Signals nicht mehr als 15 Sekunden ordnungsgemäß herunterfahren sollten. Wenn eine App nach 15 Sekunden nicht beendet wurde, wird ein SIGKILL 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 der DATABRICKS_APP_PORT Umgebungsvariable angegebene Portnummer verwenden. Siehe Umgebungsvariablen.