Del via


NotebookUtils variable biblioteksværktøjer til Fabric

Variable biblioteker hjælper dig med at undgå hardkodning af værdier i notesbogskode. I stedet for at redigere koden opdaterer du værdierne i biblioteket og henter dem under kørsel. Dette mønster hjælper dig med at genbruge notesbøger på tværs af teams og projekter ved at centralisere konfigurationen.

Følgende tabel viser de tilgængelige variable biblioteksmetoder:

Metode Signatur Beskrivelse
getLibrary getLibrary(variableLibraryName: String): VariableLibrary Henter et variabelbiblioteksobjekt. Adgangsvariabler som egenskaber på det returnerede objekt, såsom library.variableName. Du kan bruge getVariable('name') eller parentes-syntaks library['name'] for dynamisk adgang.
get get(variableReference: String): Any Henter en enkelt variabelværdi via dens referencesti i formatet $(/**/libraryName/variableName). Præfikset /**/ er påkrævet. Værdien indtastes automatisk baseret på variabeldefinitionen.

Definér variable

Definér variablerne i dit variabelbibliotek, før du bruger notebookutils.variableLibrary. Du kan oprette og administrere variabelbiblioteker via Fabric UI.

Skærmbillede af listen over variabler i variabelbiblioteket.

Hent variabelbibliotek

Brug getLibrary() den til at hente hele biblioteket som et objekt, og derefter tilgå variabler som egenskaber. Brug getVariable('name') eller klammesyntaks library['name'] , når du har brug for dynamisk adgang.

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

Følgende eksempel viser, hvordan man dynamisk konstruerer en filsti ved hjælp af variable biblioteksværdier:

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å adgang til en enkelt variabel efter reference

Brug get() metoden med referencemønsteret $(/**/libraryName/variableName) til at hente en enkelt variabelværdi. Værdien indtastes automatisk baseret på variabeldefinitionen.

Vigtigt!

Præfikset /**/ er påkrævet i referencemønsteret. Det fulde mønster skal være $(/**/libraryName/variableName), hvor libraryName er det eksakte variabelnavn på bibliotekets objekt, og variableName er den definerede variabel i det pågældende bibliotek. Navnene er små og små bogstaver.

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

Understøttede variabeltyper

Variable biblioteker understøtter følgende datatyper. Værdier bliver automatisk indtastet, når du henter dem – du behøver i de fleste tilfælde ikke kaste dem eksplicit.

Type Beskrivelse Eksempel
Streng Tekstværdier. "my_connection_string"
Heltal Heltal. 42
Boolean Boolesk sand/falsk. true
Number Decimaltal. 3.14
Dato og klokkeslæt Dato- og tidspunktværdier i ISO 8601-format. "2025-01-15T08:30:00Z"
GUID Globalt unikke identifikatorer. "123e4567-e89b-12d3-a456-426614174000"
Genstandsreference Henvisninger til understøttede Fabric-genstande. "workspace/item"

Miljøspecifik konfiguration

Variabelbiblioteker understøtter værdisæt, som lader dig definere alternative sæt af værdier for de samme variable—for eksempel dev, test og prod. Hvert arbejdsområde har ét aktivt værdisæt ad gangen, og deploymentspipelines kan automatisk aktivere den relevante værdi pr. fase.

Dette mønster eliminerer behovet for kodeændringer, når du promoverer notebooks på tværs af 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")

Overvejelser

Hav disse overvejelser i tankerne:

  • API'et notebookutils.variableLibrary understøtter kun adgang til variabelbiblioteker inden for samme arbejdsområde. Adgang på tværs af arbejdsområder understøttes ikke.
  • Du kan ikke hente variabelbiblioteker på tværs af arbejdsområder i underordnede notesbøger under en referencekørsel.
  • Notesbogskode refererer til de variabler, der er defineret i det aktive værdisæt i variabelbiblioteket. For at bruge forskellige værdier skal du aktivere et andet værdisæt i arbejdsområdet eller bruge deployment-pipelines til at administrere værdisæt for hvert miljø.
  • Service Principal (SPN) understøttes i øjeblikket ikke for variable biblioteksværktøjer.
  • Variable biblioteker er skrivebeskyttede fra notesbøger. Foretag ændringer via Fabric UI eller API'er.
  • Hvert bibliotek understøtter op til 1.000 variable og 1.000 værdisæt, med maksimalt 10.000 celler og en størrelsesgrænse på 1 MB.
  • Variabel- og biblioteksnavne er små og små bogstaver. Brug præcis navnematchning, når du refererer til variabler.

Tips

Brug deployment-pipelines til automatisk at aktivere det relevante værdisæt for hvert trin (udvikling, test, produktion). Dette eliminerer behovet for manuelt at skifte værdisæt eller ændre kode, når man promoverer notebooks på tværs af miljøer.