Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
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.variableLibrarystö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.