Freigeben über


NotebookUtils-Bibliotheks-Hilfsprogramme für Fabric

Variable Bibliotheken helfen Ihnen, Hartcodierungswerte im Notizbuchcode zu vermeiden. Statt Code zu bearbeiten, aktualisieren Sie die Werte in der Bibliothek und rufen sie zur Laufzeit ab. Mit diesem Muster können Sie Notizbücher in Teams und Projekten wiederverwenden, indem Sie die Konfiguration zentralisieren.

In der folgenden Tabelle sind die verfügbaren Methoden der Variablenbibliothek aufgeführt:

Methode Signature Beschreibung
getLibrary getLibrary(variableLibraryName: String): VariableLibrary Ruft ein Variablenbibliotheksobjekt ab. Greifen Sie auf Variablen als Eigenschaften des zurückgegebenen Objekts zu, z. B. library.variableName. Sie können getVariable('name') oder die Klammer-Syntax library['name'] für den dynamischen Zugriff verwenden.
get get(variableReference: String): Any Ruft einen einzelnen Variablenwert anhand seines Referenzpfads im Format $(/**/libraryName/variableName)ab. Das /**/ Präfix ist erforderlich. Der Wert wird basierend auf der Variablendefinition automatisch eingegeben.

Definieren von Variablen

Definieren Sie die Variablen in Ihrer Variablenbibliothek, bevor Sie sie verwenden notebookutils.variableLibrary. Sie können Variablenbibliotheken über die Fabric-Benutzeroberfläche erstellen und verwalten.

Screenshot der Variablenliste in der Variablenbibliothek.

Abrufen einer Variablenbibliothek

Verwenden Sie getLibrary(), um die gesamte Bibliothek als Objekt abzurufen und dann Variablen als Eigenschaften zuzugreifen. Verwenden Sie getVariable('name') oder die Klammernsyntax library['name'], wenn Sie dynamischen Zugriff benötigen.

samplevl = notebookutils.variableLibrary.getLibrary("sampleVL")

# Property access
samplevl.test_int
samplevl.test_str

# Method access (useful for dynamic variable names)
samplevl.getVariable("test_int")

# Bracket access
samplevl["test_int"]

Das folgende Beispiel zeigt, wie Sie einen Dateipfad dynamisch mithilfe von Variablenbibliothekswerten erstellen:

samplevl = notebookutils.variableLibrary.getLibrary("sampleVL")

file_path = f"abfss://{samplevl.Workspace_name}@onelake.dfs.fabric.microsoft.com/{samplevl.Lakehouse_name}.Lakehouse/Files/<FileName>.csv"
df = spark.read.format("csv").option("header","true").load(file_path)

display(df)

Zugriff auf eine einzelne Variable über Referenz

Verwenden Sie die get() Methode mit dem Referenzmuster $(/**/libraryName/variableName) , um einen einzelnen Variablenwert abzurufen. Der Wert wird basierend auf der Variablendefinition automatisch eingegeben.

Von Bedeutung

Das /**/ Präfix ist im Referenzmuster erforderlich. Das vollständige Muster muss sein $(/**/libraryName/variableName), wobei libraryName es sich um den exakten Namen des Variablenbibliothekselements und variableName um die definierte Variable in dieser Bibliothek handelt. Bei Namen wird die Groß-/Kleinschreibung beachtet.

notebookutils.variableLibrary.get("$(/**/samplevl/test_int)")
notebookutils.variableLibrary.get("$(/**/samplevl/test_str)")
notebookutils.variableLibrary.get("$(/**/samplevl/test_bool)")

Unterstützte Variablentypen

Variable Bibliotheken unterstützen die folgenden Datentypen. Werte werden automatisch typisiert, wenn Sie sie abrufen. In den meisten Fällen müssen Sie sie nicht explizit casten.

Typ Beschreibung Beispiel
String Textwerte. "my_connection_string"
Integer Ganze Zahlen. 42
Boolean Boolean wahr/falsch. true
Number Dezimalzahlen. 3.14
DateTime Datums- und Uhrzeitwerte im ISO 8601-Format. "2025-01-15T08:30:00Z"
Guid Globale eindeutige Bezeichner. "123e4567-e89b-12d3-a456-426614174000"
Elementreferenz Verweise auf unterstützte Fabric-Elemente. "workspace/item"

Umgebungsspezifische Konfiguration

Variable Bibliotheken unterstützen Wertesätze, mit denen Sie alternative Wertesätze für dieselben Variablen definieren können, z. B. Entwicklungs-, Test- und Prod-Werte. Jeder Arbeitsbereich hat jeweils einen aktiven Wert festgelegt, und Bereitstellungspipelinen können den entsprechenden Wert automatisch pro Stufe aktivieren.

Dieses Muster beseitigt die Notwendigkeit von Codeänderungen, wenn Sie Notizbücher in allen Umgebungen bewerben:

# These values change based on the active value set (dev/test/prod)
app_config = notebookutils.variableLibrary.getLibrary("app_config")

api_endpoint = app_config.api_endpoint
batch_size = app_config.batch_size
debug_mode = app_config.debug_enabled

print(f"API Endpoint: {api_endpoint}")
print(f"Batch Size: {batch_size}")
print(f"Debug Mode: {debug_mode}")

if debug_mode:
    print("Running in debug mode")

Überlegungen

Berücksichtigen Sie dabei Folgendes:

  • Die notebookutils.variableLibrary API unterstützt nur den Zugriff auf Variablenbibliotheken innerhalb desselben Arbeitsbereichs. Der arbeitsbereichübergreifende Zugriff wird nicht unterstützt.
  • Sie können keine Variablenbibliotheken während einer Referenzausführung aus untergeordneten Notizbüchern innerhalb von Arbeitsbereichen abrufen.
  • Der Notizbuchcode verweist auf die variablen, die im aktiven Wertsatz der Variablenbibliothek definiert sind. Um unterschiedliche Werte zu verwenden, aktivieren Sie einen anderen Wertsatz im Arbeitsbereich, oder verwenden Sie Bereitstellungspipelinen, um Wertsätze für jede Umgebung zu verwalten.
  • Dienstprinzipal (Service Principal, SPN) wird derzeit für Dienste von Variablenbibliotheken nicht unterstützt.
  • Variable Bibliotheken sind schreibgeschützt aus Notizbüchern. Nehmen Sie Änderungen über die Fabric-UI oder APIs vor.
  • Jede Bibliothek unterstützt bis zu 1.000 Variablen und 1.000 Wertsätze mit maximal 10.000 Zellen und einer Größenbeschränkung von 1 MB.
  • Bei Variablen- und Bibliotheksnamen wird die Groß-/Kleinschreibung beachtet. Verwenden Sie den exakten Namensabgleich, wenn Sie auf Variablen verweisen.

Tipp

Verwenden Sie Bereitstellungspipelines, um das entsprechende Werteset für jede Phase (Dev, Test, Prod) automatisch zu aktivieren. Dadurch ist es nicht erforderlich, Wertesätze manuell zu wechseln oder Code zu ändern, wenn Notizbücher in allen Umgebungen gefördert werden.