NotebookUtils körningskontext för Fabric

Använd notebookutils.runtime för att läsa kontextinformation om den aktuella notebook-sessionen. Du kan hämta metadata som anteckningsboksnamn, arbetsyteinformation, standardkonfiguration av lakehouse, flaggor för körning av pipeline, och hierarki för referenskörningar utan att ändra något tillstånd.

Använd körningskontext för att:

  • Dynamisk konfiguration – Anpassa notebook-beteende baserat på körningsmiljön.
  • Villkorslogik – grenlogik beroende på om notebook körs i en pipeline eller interaktivt.
  • Felsökning och övervakning – Inkludera kontextegenskaper i loggutmatning och koppla samman relaterade körningar.
  • Revisionsloggar – Samla in körningsmetadata för efterlevnads- och härkomstspårning.

Anmärkning

Körningskontexten är tillgänglig i Notebook-filer för Python, PySpark, Scala och R. Kontexten är skrivskyddad – du kan inte ändra någon av egenskaperna som returneras av notebookutils.runtime.context. Vissa egenskaper fylls bara i i specifika kontexter, till exempel referenskörningar eller pipelinekörningar, och kan returnera null eller tomma värden på annat sätt.

Visa sessionskontext

Använd notebookutils.runtime.context för att visa kontextinformation för den aktuella sessionen, inklusive anteckningsbokens namn, standardlakehouse, arbetsyteinformation samt om sessionen körs i ett pipeline-flöde.

notebookutils.runtime.context

I följande tabell beskrivs de tillgängliga egenskaperna.

Fastighet Type Beskrivning Tillgänglighet
currentNotebookName String Namnet på den aktuella anteckningsboken. Alla kontexter
currentNotebookId String Det unika ID:t för den aktuella notebook. Alla kontexter
currentWorkspaceName String Namnet på den aktuella arbetsytan. Alla kontexter
currentWorkspaceId String ID för den aktuella arbetsytan. Alla kontexter
defaultLakehouseName String Visningsnamnet för standard lakehouse, om det definieras. När standard lakehouse är anslutet
defaultLakehouseId String ID för standard lakehouse, om det definieras. När standard lakehouse är anslutet
defaultLakehouseWorkspaceName String Arbetsytans namn för standard-lakehouse, om det definieras. När standard lakehouse är anslutet
defaultLakehouseWorkspaceId String Arbetsytans ID för standard-lakehouse, om det är definierat. När standard lakehouse är anslutet
currentRunId String I en referenskörning, det aktuella körnings-ID:t. Endast referenskörningar
parentRunId String I en referenskörning med kapslade körningar är det här ID:t det överordnade körnings-ID:t. Kör endast kapslade referenser
rootRunId String I en referenskörning med kapslade körningar är detta ID rotkörnings-ID. Kör endast kapslade referenser
isForPipeline Boolean Om körningen är för en pipeline. Alla kontexter
isForInteractive Boolean Om körningen är en interaktiv session. Alla kontexter
isReferenceRun Boolean Om den nuvarande körningen är en referenskörning. Alla kontexter
referenceTreePath String Trädstrukturen för kapslade referenskörningar, som endast används för ögonblicksbildshierarkin på L2-övervakningssidan. Kör endast kapslade referenser
rootNotebookId String ID:t för huvudanteckningsboken för en referenskörning. Endast referenskörningar
rootNotebookName String Namnet på rotanteckningsboken i en referenskörning. Endast referenskörningar
rootWorkspaceId String Arbetsytans ID för huvudanteckningsboken under en referenskörning. Endast referenskörningar
rootWorkspaceName String Namnet på arbetsytan för rot-anteckningsboken i ett referensutförande. Endast referenskörningar
activityId String Livy-jobb-ID för den aktuella aktiviteten. Alla kontexter
hcReplId String REPL-ID i läge för hög samtidighet. Högt samtidighetsläge endast
clusterId String Identiteten för Synapse Spark-klustret. Alla kontexter
poolName String Namnet på Spark-poolen som används. Alla kontexter
environmentId String Miljö-ID:t där jobbet körs. Alla kontexter
environmentWorkspaceId String Miljöns arbetsyte-ID. Alla kontexter
userId String Användar-ID för den aktuella användaren. Alla kontexter
userName String Användarnamnet för den aktuella användaren. Alla kontexter
currentKernel String Namnet på den aktuella notebook-kerneln. Endast Python Notebook
productType String Produkttypidentifieraren (till exempel Fabric). Alla kontexter

Exempel på användning

Få åtkomst till grundläggande kontextinformation

Cachelagrar kontextobjektet när du behöver läsa flera egenskaper.

context = notebookutils.runtime.context

print(f"Notebook: {context['currentNotebookName']}")
print(f"Workspace: {context['currentWorkspaceName']}")
print(f"Lakehouse: {context['defaultLakehouseName'] or 'None'}")

Kontrollera pipeline jämfört med interaktiv körning

Använd isForPipeline flaggan för att förgrena logiken beroende på körningsläget. Du kan till exempel använda striktare felhantering i pipelinekörningar.

context = notebookutils.runtime.context

if context['isForPipeline']:
    print("Pipeline mode: Strict error handling")
    error_handling = "strict"
    max_retries = 3
elif context['isReferenceRun']:
    print("Running as a referenced notebook")
    error_handling = "strict"
    max_retries = 2
else:
    print("Interactive mode: Lenient error handling")
    error_handling = "lenient"
    max_retries = 1

Tips/Råd

Använd isForPipeline och isReferenceRun tillsammans för att implementera trevägsförgrening för olika körningskontexter. Det här mönstret hjälper dig att skräddarsy antalet återförsök, logga utförlighet och strategier för felhantering. För produktionsarbetsbelastningar kräver pipeline- och referenskörningar vanligtvis striktare felhantering än interaktiva sessioner.

Granska referenskörningshierarkin

När en notebook-fil körs som en del av en kapslad referenskörning kan du spåra den fullständiga hierarkin från den aktuella körningen tillbaka till roten:

context = notebookutils.runtime.context

if context['isReferenceRun']:
    print("Reference Run Context:")
    print(f"  Current Run ID: {context['currentRunId']}")
    print(f"  Parent Run ID: {context['parentRunId']}")
    print(f"  Root Run ID: {context['rootRunId']}")
    print(f"  Root Notebook: {context['rootNotebookName']}")
else:
    print("Not a reference run")

Inkludera kontext i loggning

Utöka loggmeddelanden med körningskontext för enklare felsökning och övervakning:

context = notebookutils.runtime.context

run_id = context.get("currentRunId") or "interactive"
log_prefix = (
    f"[{context['currentWorkspaceName']}/{context['currentNotebookName']}]"
    f" run={run_id}"
)

print(f"{log_prefix} Processing started")