NotebookUtils runtime context for Fabric

Použite notebookutils.runtime na čítanie kontextových informácií o aktuálnej hodine zápisníka. Môžete získať metadáta ako názov notebooku, detaily pracovného priestoru, predvolenú konfiguráciu Lakehouse, príznaky vykonávania pipeline a hierarchiu referenčných behov bez zmeny stavu.

Použite kontext za behu na:

  • Dynamická konfigurácia – Prispôsobiť správanie zápisníka na základe prostredia vykonávania.
  • Podmienená logika – Vetvená logika v závislosti od toho, či notebook beží v pipeline alebo interaktívne.
  • Ladenie a monitorovanie – Zahrňte vlastnosti kontextu do výstupu logu a korelujte súvisiace vykonávania.
  • Auditné stopy – Zachytávajú metadáta vykonávania pre sledovanie súladu a pôvodu.

Poznámka

Runtime kontext je dostupný v notebookoch Python, PySpark, Scala a R. Kontext je iba na čítanie – nemôžete meniť žiadnu z vlastností vrátených pomocou notebookutils.runtime.context. Niektoré vlastnosti sa objavujú iba v špecifických kontextoch, ako sú referenčné behy alebo vykonávanie pipeline, a inak môžu vracať null alebo vyprázdniť hodnoty.

Zobraziť kontext relácie

Použite notebookutils.runtime.context na zobrazenie kontextových informácií pre aktuálnu reláciu, vrátane názvu zápisníka, predvoleného lakehouse, informácií o pracovnom priestore a či relácia beží v pipeline.

notebookutils.runtime.context

Nasledujúca tabuľka popisuje dostupné vlastnosti.

Vlastnosť Typ Description Dostupnosť
currentNotebookName Povrázok Názov aktuálneho zápisníka. Všetky kontexty
currentNotebookId Povrázok Jedinečné ID aktuálneho zápisníka. Všetky kontexty
currentWorkspaceName Povrázok Názov súčasného pracoviska. Všetky kontexty
currentWorkspaceId Povrázok ID aktuálneho pracovného priestoru. Všetky kontexty
defaultLakehouseName Povrázok Zobrazovaný názov predvoleného jazerného domu, ak je definovaný. Keď je predvolený lakehouse pripojený
defaultLakehouseId Povrázok ID predvoleného jazerného domu, ak je definovaný. Keď je predvolený lakehouse pripojený
defaultLakehouseWorkspaceName Povrázok Názov pracovného priestoru predvoleného jazerného domu, ak je definovaný. Keď je predvolený lakehouse pripojený
defaultLakehouseWorkspaceId Povrázok ID pracovného priestoru predvoleného jazerného domu, ak je definované. Keď je predvolený lakehouse pripojený
currentRunId Povrázok V referenčnom behu je aktuálne ID behu. Iba referenčné behy
parentRunId Povrázok V referenčnom behu s vnorenými behmi je toto ID rodičovským behom. Iba vnorené referenčné behy
rootRunId Povrázok V referenčnom behu s vnorenými behmi je toto ID koreňovým ID behu. Iba vnorené referenčné behy
isForPipeline booleovský Či je beh na pipeline. Všetky kontexty
isForInteractive booleovský Či je beh interaktívna. Všetky kontexty
isReferenceRun booleovský Či je aktuálny beh referenčný beh. Všetky kontexty
referenceTreePath Povrázok Stromová štruktúra vnorených referenčných behov, používaná iba pre hierarchiu snapshotov na monitorovacej L2 stránke. Iba vnorené referenčné behy
rootNotebookId Povrázok ID koreňového zápisníka v referenčnom behu. Iba referenčné behy
rootNotebookName Povrázok Názov koreňového zápisníka v referenčnom behu. Iba referenčné behy
rootWorkspaceId Povrázok ID pracovného priestoru koreňového zápisníka v referenčnom behu. Iba referenčné behy
rootWorkspaceName Povrázok Názov pracovného priestoru koreňového zápisníka v referenčnom behu. Iba referenčné behy
activityId Povrázok Livy job ID pre aktuálnu aktivitu. Všetky kontexty
hcReplId Povrázok REPL ID je v režime vysokej súbežnosti. Iba režim vysokej súbežnosti
clusterId Povrázok Identita Azure Synapse Spark klastra. Všetky kontexty
poolName Povrázok Názov Spark pool, ktorý sa používa. Všetky kontexty
environmentId Povrázok Environment ID, kde úloha beží. Všetky kontexty
environmentWorkspaceId Povrázok ID pracovného priestoru prostredia. Všetky kontexty
userId Povrázok Používateľské ID aktuálneho používateľa. Všetky kontexty
userName Povrázok Používateľské meno aktuálneho používateľa. Všetky kontexty
currentKernel Povrázok Názov aktuálneho jadra notebooku. Iba Python notebook
productType Povrázok Identifikátor typu produktu (napríklad Fabric). Všetky kontexty

Príklady používania

Prístup k základným informáciám o kontexte

Ukladajte kontextový objekt do vyrovnávacej pamäte, keď potrebujete čítať viacero vlastností.

context = notebookutils.runtime.context

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

Skontrolujte pipeline vs. interaktívne vykonávanie

Používajte isForPipeline flag na vetvenie logiky podľa režimu vykonávania. Napríklad môžete použiť prísnejšie spracovanie chýb v pipeline behoch.

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

Prepitné

Použiť isForPipeline a isReferenceRun spolu na implementáciu trojcestného vetvenia pre rôzne kontexty vykonávania. Tento vzor vám pomáha prispôsobiť počty opakovaných pokusov, zaznamenávanie rozvláčnosti a stratégie riešenia chýb. Pre produkčné pracovné zaťaženia zvyčajne vyžadujú pipeline a referenčné spustenia prísnejšie spracovanie chýb než interaktívne relácie.

Skontrolujte hierarchiu referenčných behov

Keď zápisník beží ako súčasť vnoreného referenčného behu, môžete sledovať celú hierarchiu od aktuálneho behu až ku koreňu:

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

Zahrnúť kontext do logovania

Obohatte logové správy o kontext vykonávania pre jednoduchšie ladenie a monitorovanie:

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