NotebookUtils-verktyg för variabler i Fabric-bibliotek

Med variabelbibliotek kan du undvika hårdkodning av värden i notebook-kod. I stället för att redigera kod uppdaterar du värdena i biblioteket och hämtar dem vid körning. Det här mönstret hjälper dig att återanvända notebook-filer mellan team och projekt genom att centralisera konfigurationen.

I följande tabell visas tillgängliga metoder för variabelbibliotek:

Metod Signature Beskrivning
getLibrary getLibrary(variableLibraryName: String): VariableLibrary Hämtar ett variabelbiblioteksobjekt. Få åtkomst till variabler som egenskaper för det returnerade objektet, till exempel library.variableName. Du kan använda getVariable('name') eller hakparentessyntax library['name'] för dynamisk åtkomst.
get get(variableReference: String): Any Hämtar ett enda variabelvärde med dess referenssökväg i formatet $(/**/libraryName/variableName). Prefixet /**/ krävs. Värdet skrivs automatiskt baserat på variabeldefinitionen.

Definiera variabler

Definiera variablerna i variabelbiblioteket innan du använder notebookutils.variableLibrary. Du kan skapa och hantera variabelbibliotek genom Fabric UI.

Skärmbild av variabellistan i variabelbiblioteket.

Hämta variabelbibliotek

Använd getLibrary() för att hämta hela biblioteket som ett objekt och sedan komma åt variabler som egenskaper. Använd getVariable('name') eller hakparentes syntax library['name'] när du behöver dynamisk åtkomst.

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

I följande exempel visas hur du dynamiskt skapar en filsökväg med hjälp av variabelbiblioteksvärden:

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)

Få åtkomst till en enskild variabel efter referens

get() Använd metoden med referensmönstret $(/**/libraryName/variableName) för att hämta ett enda variabelvärde. Värdet skrivs automatiskt baserat på variabeldefinitionen.

Viktigt!

Prefixet /**/ krävs i referensmönstret. Det fullständiga mönstret måste vara $(/**/libraryName/variableName), där libraryName är det exakta namnet på variabelbiblioteksobjektet och variableName är den definierade variabeln i biblioteket. Namn är skiftlägeskänsliga.

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

Variabeltyper som stöds

Variabelbibliotek stöder följande datatyper. Värden skrivs automatiskt när du hämtar dem – du behöver inte konvertera dem explicit i de flesta fall.

Type Beskrivning Exempel
String Textvärden. "my_connection_string"
Heltal Heltalsnummer. 42
Boolean Boolesk sant/falskt. true
Nummer Decimaltal. 3.14
DateTime Datum- och tidsvärden i ISO 8601-format. "2025-01-15T08:30:00Z"
Guid Globalt unika identifierare. "123e4567-e89b-12d3-a456-426614174000"
Objektreferens Referenser till stödda Fabric-element. "workspace/item"

Miljöspecifik konfiguration

Variabelbibliotek stöder värdeuppsättningar som gör att du kan definiera alternativa uppsättningar med värden för samma variabler, till exempel utveckling, testning och prod. Varje arbetsyta har ett aktivt värde i taget och distributionspipelines kan automatiskt aktivera rätt värdeuppsättning per steg.

Det här mönstret eliminerar behovet av kodändringar när du höjer upp notebook-filer i olika miljöer:

# 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")

Överväganden

Tänk på följande:

  • API:et notebookutils.variableLibrary stöder endast åtkomst till variabelbibliotek på samma arbetsyta. Åtkomst mellan arbetsytor stöds inte.
  • Du kan inte hämta variabelbibliotek mellan arbetsytor i underordnade notebook-filer under en referenskörning.
  • Notebook-kod refererar till variablerna som definierats i den aktiva värdeuppsättningen i variabelbiblioteket. Om du vill använda olika värden aktiverar du en annan värdeuppsättning på arbetsytan eller använder distributionspipelines för att hantera värdeuppsättningar för varje miljö.
  • Service Principal (SPN) stöds för närvarande inte för variabellibaryverktyg.
  • Variabelbibliotek är skrivskyddade från notebook-filer. Gör ändringar via infrastrukturgränssnittet eller API:erna.
  • Varje bibliotek stöder upp till 1 000 variabler och 1 000 värdeuppsättningar, med högst 10 000 celler och en storleksgräns på 1 MB.
  • Variabel- och biblioteksnamn är skiftlägeskänsliga. Använd exakt namnmatchning när du refererar till variabler.

Tips/Råd

Använd distributionspipelines för att automatiskt aktivera rätt värdeuppsättning för varje steg (dev, test, prod). Detta eliminerar behovet av att manuellt växla värdeuppsättningar eller ändra kod när du främjar notebook-filer mellan miljöer.