Freigeben über


Definieren von Umgebungsvariablen in einer Databricks-App

Azure Databricks legt automatisch bestimmte Umgebungsvariablen in der App-Laufzeitumgebung fest. Diese Variablen stellen wichtige Informationen über die App und den Arbeitsbereich bereit und sind standardmäßig für alle Databricks-Apps zugänglich. Eine Liste der Standardvariablen finden Sie unter Databricks Apps-Umgebung.

Wenn Ihre App zusätzliche Umgebungsvariablen benötigt, definieren Sie sie in der Konfigurationsdatei "app.yaml " im env Abschnitt. Jede Variable erfordert einen Namen und einen Wert. Variablen können einen hartcodierten Wert verwenden oder auf eine externe Quelle verweisen.

Beispiel:

env:
  - name: LOG_LEVEL
    value: 'debug'

Verwenden Sie hartkodierte Werte nur, wenn sie statisch, nicht vertraulich und konsistent über alle Umgebungen hinweg sind. Beispiele sind value: "true" für Feature-Schalter, value: "us-west" für fixierte Regionen oder value: "UTC" für Standardzeitzonen.

Von Bedeutung

Um ihre App sicher und portierbar zu halten, verweisen Sie niemals direkt in Ihrer App-Konfiguration auf geheime Schlüssel oder andere vertrauliche Werte. Vermeiden Sie beispielsweise das Einbetten geheimer Werte in das value Feld einer Umgebungsvariable oder direkt in Den Quellcode. Verwenden Sie stattdessen das valueFrom Feld, um geheime Schlüssel und andere verwaltete Ressourcen, die in Ihrem Ressourcenblock definiert sind, sicher zu referenzieren. Dadurch wird sichergestellt, dass geheime Schlüssel zur Laufzeit von Azure Databricks abgerufen werden und niemals in Klartext in Ihren Konfigurationsdateien verfügbar gemacht werden.

Verwenden von Umgebungsvariablen für den Zugriff auf Ressourcen

Wenn Sie App-Ressourcen wie SQL-Lagerhäuser oder geheime Schlüssel definieren, verweisen Sie auf diese Ressourcen im env Abschnitt Ihrer app.yaml Datei mithilfe des valueFrom Felds. Dadurch werden Umgebungsvariablen in Ihrer App mit den in resourcesder Datei definierten Ressourcenschlüsseln verbunden.

Beispiel app.yaml Ausschnitt:

env:
  - name: WAREHOUSE_ID
    valueFrom: sql_warehouse

  - name: SECRET_KEY
    valueFrom: secret

Greifen Sie dann im App-Code als Umgebungsvariablen auf sie zu:

Python

import os

warehouse_id = os.getenv("WAREHOUSE_ID")
secret_value = os.getenv("SECRET_KEY")

JavaScript

const warehouseId = process.env.WAREHOUSE_ID;
const secretValue = process.env.SECRET_KEY;

valueFrom Verweis

Die folgende Tabelle zeigt den Wert, zu dem valueFrom für jeden Ressourcentyp aufgelöst wird:

Ressourcentyp Aufgelöster Wert Beispiel
Databricks-App App-Name my-app
Genie Space Raum-ID 01ef1fa2b3c45678
Lakebase Autoscaling-Datenbank Endpunktpfad projects/my-project/branches/main/endpoints/ep123
Bereitgestellte Lakebase-Datenbank Gastgeber postgres-host.example.com
Lakeflow-Auftrag Auftrags-ID 123456789
MLflow-Experiment Experiment-ID 456789012
Modell, das Endpunkt bedient Endpunktname my-serving-endpoint
Geheimnis Entschlüsselter geheimer Wert (der geheime Wert)
SQL-Warehouse Lager-ID a1b2c3d4e5f67890
Unity-Katalogverbindung Verbindungsname my_connection
Unity-Katalogtabelle Vollständiger Tabellenname catalog.schema.table
Unity-Katalogvolume Volumepfad /Volumes/catalog/schema/volume
Benutzerdefinierte Funktion Vollständiger Funktionsname catalog.schema.my_function
Vektorsuchindex Vollständiger Indexname catalog.schema.my_index

Nächste Schritte