Freigeben über


Databricks Apps-Konfiguration

Wichtig

Databricks-Apps befinden sich in der öffentlichen Vorschau.

In diesem Artikel werden die Einstellungen in der Databricks Apps-Umgebung automatisch konfiguriert und erläutert, wie Sie benutzerdefinierte Konfiguration definieren, die für Ihre Apps erforderlich ist.

Die Databricks-Apps-Umgebung legt mehrere Umgebungsvariablen fest, z. B. die URL des Azure Databricks-Arbeitsbereichs, in dem die App ausgeführt wird, und werte, die zum Ausführen der Authentifizierung für Ihre App erforderlich sind. Manchmal benötigen Ihre Apps jedoch zusätzliche benutzerdefinierte Variablen. Sie benötigen beispielsweise einen benutzerdefinierten Befehl, um Ihre App oder Parameter auszuführen, um eine Verbindung mit einem SQL Warehouse herzustellen. Verwenden Sie für diese benutzerdefinierten Konfigurationsparameter die app.yaml Datei.

Konfigurieren Ihrer Databricks-Apps mit der app.yaml Datei

Hinweis

Ihre App-Konfigurationsdatei kann die .yaml Oder-Erweiterung .yml verwenden.

Um eine benutzerdefinierte Konfiguration für Ihre App zu definieren, fügen Sie Ihrem Projekt eine app.yaml Datei hinzu. In der folgenden Tabelle sind die Einstellungen aufgeführt, die Sie in der app.yaml Datei definieren können, gefolgt von Beispielkonfigurationsdateien.

app.yaml -Einstellungen
command

Typ: sequence

Ein optionaler Satz von Argumenten zum Ausführen der App. Verwenden Sie diese Einstellung, wenn Sie einen benutzerdefinierten Befehl zum Ausführen Ihrer App benötigen. Die Standardwerte sind [python, app.py].

Der Befehl wird nicht in einer Shell ausgeführt, sodass alle in der Umgebung festgelegten Werte nicht an Ihre App übergeben werden. Wenn Ihre App zusätzliche Parameter zum Ausführen benötigt, verwenden Sie die env Struktur.

Diese Einstellung ist optional.
env

Typ: list

Der Schlüssel der obersten Ebene für eine optionale Liste von Schlüsselwertpaaren, die Umgebungsvariablen definieren, die an Ihre App übergeben werden sollen. Dies value kann entweder ein tatsächlicher Parameterwert oder ein Verweis darauf sein, wo der Wert gespeichert ist. Die gültigen Elemente in der Liste sind:

- name: der Name der Umgebungsvariablen.
- Eine von:
- value: Der Wert für die Umgebungsvariable.
- valueFrom: Für einen extern definierten Wert den Namen der Quelle, die den Wert enthält. Beispielsweise der Name eines geheimen Schlüssels oder einer Datenbanktabelle, die den Wert enthält.

Diese Einstellung ist optional.

Beispiel app.yaml für eine Streamlit-App

In der folgenden Beispielkonfigurationsdatei app.yaml wird eine Streamlit-App ausgeführt, wobei eine SQL Warehouse-ID und ein Wert für den STREAMLIT_GATHER_USAGE_STATS Parameter übergeben werden:

command: [
  "streamlit",
  "run",
  "app.py"
]
env:
  - name: "DATABRICKS_WAREHOUSE_ID"
    value: "quoz2bvjy8bl7skl"
  - name: "STREAMLIT_GATHER_USAGE_STATS"
    value: "false"

Beispiel app.yaml für eine Flask-App

Die folgende Beispielkonfigurationsdatei app.yaml führt eine Flask-App mit dem Gunicorn-Server aus und legt eine Umgebungsvariable fest, die den Pfad zu einem Unity-Katalogvolume enthält:

command:
  - gunicorn
  - app:app
  - -w
  - 4
env:
  - name: "VOLUME_URI"
    value: "/Volumes/catalog-name/schema-name/dir-name"

Verweisen auf einen geheimen Databricks-Schlüssel

Wenn Sie auf einen geheimen Schlüssel verweisen möchten, der als Ressourcenabhängigkeit für Ihre App konfiguriert ist, legen Sie valueFrom: <dependency_name> den env Abschnitt Ihrer app.yaml Konfiguration fest. Ersetzen Sie den dependency_name Ressourcenschlüsselwert aus der Konfiguration für die geheime Ressource. Weitere Informationen zu Ressourcenabhängigkeiten von Databricks-Apps finden Sie unter Gewusst wie Integrieren meiner Databricks-App in Azure Databricks-Dienste?. Weitere Informationen zum Verwalten von Databricks-Geheimschlüsseln finden Sie unter Verwalten von geheimen Schlüsseln.

Im folgenden Beispiel app.yaml wird auf einen geheimen Schlüssel verwiesen, der als Ressourcenabhängigkeit konfiguriert ist:

command: [
  "python",
  "app.py"
]
env:
  - name: "SECRET_KEY"
    valueFrom: "secret-name"

Databricks Apps-Umgebungsvariablen

Die folgenden Variablen werden automatisch in der Databricks Apps-Umgebung festgelegt und sind für alle Apps verfügbar. Wenn Sie zusätzliche Umgebungsvariablen festlegen müssen, fügen Sie sie der Datei "app.yaml" hinzu.

Variable Beschreibung
DATABRICKS_APP_NAME Der Name der ausgeführten App.
DATABRICKS_WORKSPACE_ID Die eindeutige ID für den Databricks-Arbeitsbereich, zu dem die App gehört.
DATABRICKS_HOST Die URL des Databricks-Arbeitsbereichs, zu dem die App gehört.
DATABRICKS_APP_PORT Der Netzwerkport, auf den die App lauschen soll.
DATABRICKS_CLIENT_ID Die Client-ID für den Databricks-Dienstprinzipal, der der App zugewiesen ist.
DATABRICKS_CLIENT_SECRET Der OAuth-Schlüssel für den Databricks-Dienstprinzipal, der der App zugewiesen ist.

Standardumgebungsvariablen für Streamlit

Die folgenden Streamlit-spezifischen Variablen werden automatisch in der Databricks-Apps-Umgebung konfiguriert und für Ihre Databricks-Apps verfügbar, die das Streamlit-Framework verwenden:

Variable Beschreibung
STREAMLIT_SERVER_ADDRESS Die Serveradresse für die Verwendung durch Streamlit. Dieser Wert ist auf 0.0.0.0 festgelegt und darf nicht außer Kraft gesetzt werden.
STREAMLIT_SERVER_PORT Der Port für die Verwendung durch Streamlit. Dieser Wert ist auf DATABRICKS_APP_PORT festgelegt und darf nicht außer Kraft gesetzt werden.
STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION Da der Databricks-Apps-Reverseproxy vor cross-Site Request Forgery (XSRF) schützt, wird dies auf false.
STREAMLIT_SERVER_ENABLE_CORS Da der Databricks-Apps-Reverseproxy vor cross-Origin Resource Sharing (CORS) schützt, ist dies auf " false.
STREAMLIT_SERVER_HEADLESS Dies ist so festgelegt, true dass Streamlit beim Starten ohne Öffnen eines Browserfensters ausgeführt wird.
STREAMLIT_BROWSER_GATHER_USAGE_STATS Dies ist so festgelegt, dass verhindert wird, false dass Benutzerstatistiken an Streamlit gesendet werden.