NotebookUtils-futtatási környezet a Fabrichez

Használja a notebookutils.runtime elemet az aktuális jegyzetfüzet-munkamenet környezeti információinak olvasására. Az állapot módosítása nélkül lekérheti a metaadatokat, például a jegyzetfüzet nevét, a munkaterület adatait, az alapértelmezett lakehouse-konfigurációt, a folyamatvégrehajtási jelzőket és a referencia-futtatási hierarchiát.

A futtatókörnyezet használata a következőkhöz:

  • Dinamikus konfiguráció – A jegyzetfüzet viselkedésének adaptálása a végrehajtási környezet alapján.
  • Feltételes logika – Áglogika attól függően, hogy a jegyzetfüzet egy folyamatban vagy interaktívan fut-e.
  • Hibakeresés és figyelés – A környezeti tulajdonságok belefoglalása a naplókimenetbe, és a kapcsolódó végrehajtások korrelációja.
  • Naplózási nyomok – Végrehajtási metaadatok rögzítése a megfelelőség és az életút nyomon követéséhez.

Megjegyzés:

A futtatókörnyezet Python-, PySpark-, Scala- és R-jegyzetfüzetekben érhető el. A környezet írásvédett – nem módosíthatja a notebookutils.runtime.context által visszaadott tulajdonságok egyikét sem. Egyes tulajdonságok csak meghatározott környezetekben vannak feltöltve, például referenciafuttatásokban vagy folyamatvégrehajtásokban, és máskülönben visszaadhatnak null vagy üres értékeket.

Munkamenet-környezet megtekintése

Használja a(z) notebookutils.runtime.context-t az aktuális munkamenet környezeti információinak megtekintéséhez, beleértve a jegyzetfüzet nevét, az alapértelmezett lakehouse-t, a munkaterület adatait, valamint azt, hogy a munkamenet folyamatvezetéken fut-e.

notebookutils.runtime.context

Az alábbi táblázat az elérhető tulajdonságokat ismerteti.

Ingatlan Típus Leírás Availability
currentNotebookName Lánc Az aktuális jegyzetfüzet neve. Minden környezet
currentNotebookId Lánc Az aktuális jegyzetfüzet egyedi azonosítója. Minden környezet
currentWorkspaceName Lánc Az aktuális munkaterület neve. Minden környezet
currentWorkspaceId Lánc Az aktuális munkaterület azonosítója. Minden környezet
defaultLakehouseName Lánc Az alapértelmezett lakehouse megjelenítendő neve, ha meg van adva. Ha az alapértelmezett lakehouse hozzá van rendelve
defaultLakehouseId Lánc Az alapértelmezett lakehouse azonosítója, ha meg van adva. Ha az alapértelmezett lakehouse hozzá van rendelve
defaultLakehouseWorkspaceName Lánc Az alapértelmezett lakehouse munkaterületneve, ha meg van adva. Ha az alapértelmezett lakehouse hozzá van rendelve
defaultLakehouseWorkspaceId Lánc Az alapértelmezett lakehouse-munkaterület-azonosító, ha meg van adva. Ha az alapértelmezett lakehouse hozzá van rendelve
currentRunId Lánc Referenciafuttatás esetén az aktuális futtatási azonosító. Csak referenciateszt-futtatások
parentRunId Lánc Egy olyan referenciafuttatásban, amely beágyazott futtatásokat tartalmaz, ez az azonosító a szülő futamidő azonosítója. Csak beágyazott referencia fut
rootRunId Lánc Beágyazott futtatásokkal rendelkező referenciafuttatásokban ez az azonosító a gyökérfuttatás azonosítója. Csak beágyazott referencia fut
isForPipeline logikai Azt jelzi, hogy a futtatás egy folyamathoz készült-e. Minden környezet
isForInteractive logikai Azt jelzi, hogy a futtatás interaktív munkamenet-e. Minden környezet
isReferenceRun logikai Azt jelzi, hogy az aktuális futtatás referenciafuttatás-e. Minden környezet
referenceTreePath Lánc A beágyazott referenciafutások faszerkezete, amelyet csak a pillanatkép-hierarchiában használnak a figyelési L2 oldalon. Csak beágyazott referencia fut
rootNotebookId Lánc A gyökérjegyzetfüzet azonosítója egy referenciafuttatásban. Csak referenciateszt-futtatások
rootNotebookName Lánc Egy referencia futtatás során a gyökérjegyzetfüzet neve. Csak referenciateszt-futtatások
rootWorkspaceId Lánc A gyökérjegyzetfüzet munkaterület-azonosítója egy referenciafuttatásban. Csak referenciateszt-futtatások
rootWorkspaceName Lánc A gyökérjegyzetfüzet munkaterületneve egy referenciafuttatásban. Csak referenciateszt-futtatások
activityId Lánc Az aktuális tevékenység Livy-feladatazonosítója. Minden környezet
hcReplId Lánc A REPL-azonosító magas párhuzamossági módban. Nagyfokú egyidejűségi mód csak
clusterId Lánc Az Azure Synapse Spark klasterének identitása. Minden környezet
poolName Lánc A használt Spark-készlet neve. Minden környezet
environmentId Lánc A környezeti azonosító, amelyen a feladat fut. Minden környezet
environmentWorkspaceId Lánc A környezet munkaterület-azonosítója. Minden környezet
userId Lánc Az aktuális felhasználó felhasználói azonosítója. Minden környezet
userName Lánc Az aktuális felhasználó felhasználóneve. Minden környezet
currentKernel Lánc Az aktuális jegyzetfüzet kernelének neve. Csak Python notebook
productType Lánc A terméktípus azonosítója (például Fabric). Minden környezet

Felhasználási példák

Alapvető környezeti információk elérése

Tárolja gyorsítótárban a környezet-objektumot, ha több tulajdonságot kell olvasnia.

context = notebookutils.runtime.context

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

Folyamat ellenőrzése és interaktív végrehajtás

A isForPipeline jelölő használatával a logikát a végrehajtási módtól függően elágaztathatja. Szigorúbb hibakezelést alkalmazhat például a folyamatfuttatásokban.

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

Jótanács

isForPipeline és isReferenceRun együttes használata háromirányú elágaztatás megvalósításához a különböző végrehajtási környezetekben. Ez a minta segít testre szabni az újrapróbálkozások számát, a naplózás részletességét és a hibakezelési stratégiákat. Éles számítási feladatok esetében a folyamat- és referenciafuttatások általában szigorúbb hibakezelést igényelnek, mint az interaktív munkamenetek.

A referenciafuttatási hierarchia vizsgálata

Ha egy jegyzetfüzet beágyazott referenciafuttatás részeként fut, a teljes hierarchiát visszakövetheti az aktuális futtatástól a gyökérig:

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

A környezet bevonása a naplózásba

Gazdagítsa a naplóüzeneteket végrehajtási környezettel a könnyebb hibakeresés és figyelés érdekében:

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