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