Kontext modulu runtime NotebookUtils pro Prostředky infrastruktury

Použijte notebookutils.runtime ke čtení kontextových informací o aktuální relaci poznámkového bloku. Můžete načíst metadata, jako je název poznámkového bloku, podrobnosti pracovního prostoru, výchozí konfigurace lakehouse, příznaky spuštění pipeline a referenční hierarchie spuštění, aniž byste změnili jakýkoli stav.

Kontext modulu runtime použijte k:

  • Dynamická konfigurace – Přizpůsobit chování poznámkového bloku na základě spouštěcího prostředí
  • Podmíněná logika – rozvětvení logiky v závislosti na tom, jestli se poznámkový blok spouští v pipeline nebo interaktivně.
  • Ladění a monitorování – Zahrnutí vlastností kontextu do výstupu protokolu a korelace souvisejících spuštění
  • Záznamové stopy – Zachytávání metadat spouštění pro dodržování předpisů a sledování původu.

Poznámka:

Kontext modulu runtime je k dispozici v poznámkových blocích Python, PySpark, Scala a R. Kontext je jen pro čtení – nemůžete upravovat žádné vlastnosti vrácené notebookutils.runtime.context. Některé vlastnosti jsou naplněny pouze v konkrétních kontextech, jako jsou referenční spuštění nebo spuštění kanálu, a jinak můžou vrátit null nebo prázdné hodnoty.

Zobrazení kontextu relace

Použijte notebookutils.runtime.context k zobrazení kontextových informací pro aktuální relaci, včetně názvu poznámkového bloku, výchozího Lakehouse, informací o pracovním prostoru a toho, zda se relace spouští v pipeline.

notebookutils.runtime.context

Následující tabulka popisuje dostupné vlastnosti.

Vlastnictví Typ Description dostupnost
currentNotebookName String Název aktuálního poznámkového bloku Všechny kontexty
currentNotebookId String Jedinečné ID aktuálního poznámkového bloku. Všechny kontexty
currentWorkspaceName String Název aktuálního pracovního prostoru. Všechny kontexty
currentWorkspaceId String ID aktuálního pracovního prostoru. Všechny kontexty
defaultLakehouseName String Zobrazovaný název výchozího jezera, pokud je definován. Při připojení výchozího datového úložiště Lakehouse
defaultLakehouseId String ID výchozího jezera, pokud je definováno. Při připojení výchozího datového úložiště Lakehouse
defaultLakehouseWorkspaceName String Název pracovního prostoru výchozího lakehouse, pokud je definován. Při připojení výchozího datového úložiště Lakehouse
defaultLakehouseWorkspaceId String ID pracovního prostoru výchozího Lakehouse, pokud je definováno. Při připojení výchozího datového úložiště Lakehouse
currentRunId String V referenčním spuštění je aktuální ID spuštění. Pouze referenční provoz
parentRunId String V referenčním spuštění s vnořenými spuštěními je toto ID nadřazeného spuštění. Pouze vnořené referenční běhy
rootRunId String V referenčním spuštění s vnořenými spuštěními je toto ID kořenové ID spuštění. Pouze vnořené referenční běhy
isForPipeline logický Zda je spuštění určeno pro kanál. Všechny kontexty
isForInteractive logický Určuje, jestli je spuštění interaktivní relací. Všechny kontexty
isReferenceRun logický Určuje, jestli je aktuální spuštění referenčním spuštěním. Všechny kontexty
referenceTreePath String Stromová struktura vnořených referenčních sekvencí, která se používá pouze pro hierarchii snímků na stránce L2 monitorování. Pouze vnořené referenční běhy
rootNotebookId String ID kořenového poznámkového bloku v referenčním spuštění Pouze referenční provoz
rootNotebookName String Název kořenového poznámkového bloku při referenčním běhu Pouze referenční provoz
rootWorkspaceId String ID pracovního prostoru kořenového poznámkového bloku v referenčním běhu. Pouze referenční provoz
rootWorkspaceName String Název pracovního prostoru kořenového poznámkového bloku v referenčním spuštění. Pouze referenční provoz
activityId String ID úlohy Livy pro aktuální aktivitu. Všechny kontexty
hcReplId String REPL ID v režimu vysoké souběžnosti. Pouze režim vysoké souběžnosti
clusterId String Identita Azure Synapse Spark clusteru. Všechny kontexty
poolName String Název používaného fondu Sparku. Všechny kontexty
environmentId String ID prostředí, ve kterém je úloha spuštěná. Všechny kontexty
environmentWorkspaceId String ID pracovního prostoru pro prostředí. Všechny kontexty
userId String uživatelské ID aktuálního uživatele Všechny kontexty
userName String Uživatelské jméno aktuálního uživatele. Všechny kontexty
currentKernel String Název aktuálního jádra notebooku. Pouze Python notebook
productType String Identifikátor typu produktu (například Fabric). Všechny kontexty

Příklady použití

Přístup k základním informacím o kontextu

Pokud potřebujete přečíst více vlastností, ukažte kontextový objekt do mezipaměti.

context = notebookutils.runtime.context

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

Kontrola kanálu vs. interaktivního spouštění

isForPipeline Použijte příznak k větvení logiky v závislosti na režimu spuštění. Například můžete v pipeline použít přísnější zpracování chyb.

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

Návod

Použijte isForPipeline a isReferenceRun společně, abyste implementovali třícestné větvení pro různé kontexty provádění. Tento vzor vám pomůže přizpůsobit počty opakování pokusů, úroveň podrobnosti protokolování a strategie pro zpracování chyb. Při produkčních úlohách obvykle spuštění pipelines a referenční běhy vyžadují přísnější zpracování chyb než interaktivní relace.

Prozkoumat hierarchii spuštění referenčního běhu

Když se notebook spustí jako součást vnořeného referenčního spuštění, můžete sledovat úplnou hierarchii od aktuálního spuštění zpět ke kořeni.

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

Zahrnutí kontextu do protokolování

Obohaťte zprávy protokolu o kontext spuštění, aby bylo ladění a monitorování snazší.

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