Runtimecontext voor NotebookUtils in Fabric

Gebruik notebookutils.runtime deze optie om contextinformatie over de huidige notebooksessie te lezen. U kunt metagegevens zoals de naam van het notitieblok, werkruimtegegevens, standaardconfiguratie van Lakehouse, pijplijnuitvoeringsvlagken en referentie-uitvoeringshiërarchie ophalen zonder de status te wijzigen.

Runtime context gebruiken om te:

  • Dynamische configuratie : notebookgedrag aanpassen op basis van de uitvoeringsomgeving.
  • Voorwaardelijke logica – Vertakkingslogica, afhankelijk van of de notebook in een pijplijn of interactief wordt uitgevoerd.
  • Foutopsporing en bewaking : contexteigenschappen opnemen in logboekuitvoer en gerelateerde uitvoeringen correleren.
  • Audittrails : leg uitvoeringsmetagegevens vast voor naleving en tracering van herkomst.

Opmerking

Runtime-context is beschikbaar in Python, PySpark, Scala en R-notebooks. De context heeft het kenmerk Alleen-lezen. U kunt geen van de eigenschappen wijzigen die worden geretourneerd door notebookutils.runtime.context. Sommige eigenschappen worden alleen ingevuld in specifieke contexten, zoals referentie-uitvoeringen of pijplijn-uitvoeringen, en retourneren null of lege waarden anderszins.

Sessiecontext weergeven

Gebruik notebookutils.runtime.context om contextinformatie weer te geven voor de huidige sessie, inclusief de naam van het notitieblok, de standaard lakehouse, informatie over de werkruimte en of de sessie wordt uitgevoerd in een pipeline.

notebookutils.runtime.context

In de volgende tabel worden de beschikbare eigenschappen beschreven.

Vastgoed Typ Beschrijving Availability
currentNotebookName Snaar / Touwtje De naam van het huidige notitieblok. Alle contexten
currentNotebookId Snaar / Touwtje De unieke ID van het huidige notitieblok. Alle contexten
currentWorkspaceName Snaar / Touwtje De naam van de huidige werkruimte. Alle contexten
currentWorkspaceId Snaar / Touwtje De ID van de huidige werkruimte. Alle contexten
defaultLakehouseName Snaar / Touwtje De weergavenaam van het standaard lakehouse, indien gedefinieerd. Wanneer standaard lakehouse is gekoppeld
defaultLakehouseId Snaar / Touwtje Het ID van de standaard lakehouse, indien gedefinieerd. Wanneer standaard lakehouse is gekoppeld
defaultLakehouseWorkspaceName Snaar / Touwtje De naam van de werkruimte van het standaard lakehouse, indien gedefinieerd. Wanneer standaard lakehouse is gekoppeld
defaultLakehouseWorkspaceId Snaar / Touwtje De werkruimte-id van het standaard lakehouse, indien gedefinieerd. Wanneer standaard lakehouse is gekoppeld
currentRunId Snaar / Touwtje In een referentie-uitvoering, de huidige run-ID. Alleen referentie-uitvoeringen
parentRunId Snaar / Touwtje In een verwijzingsuitvoering met geneste runs is deze id de bovenliggende run-ID. Geneste verwijzing wordt alleen uitgevoerd
rootRunId Snaar / Touwtje In een verwijzingsuitvoering met geneste uitvoeringen is deze ID de basisrun-ID. Geneste verwijzing wordt alleen uitgevoerd
isForPipeline Boolean Of de uitvoering voor een pijplijn is. Alle contexten
isForInteractive Boolean Of de run een interactieve sessie is. Alle contexten
isReferenceRun Boolean Of de huidige uitvoering een referentie-uitvoering is. Alle contexten
referenceTreePath Snaar / Touwtje De boomstructuur van geneste referentie-uitvoeringen, alleen gebruikt voor de hiërarchie van momentopnamen op de L2-bewakingspagina. Geneste verwijzing wordt alleen uitgevoerd
rootNotebookId Snaar / Touwtje De ID van het rootnotebook in een referentie-uitvoering. Alleen referentie-uitvoeringen
rootNotebookName Snaar / Touwtje De naam van het hoofdnotebook in een referentie-uitvoering. Alleen referentie-uitvoeringen
rootWorkspaceId Snaar / Touwtje De werkruimte-id van het hoofdnotebook in een referentieloop. Alleen referentie-uitvoeringen
rootWorkspaceName Snaar / Touwtje De naam van de werkruimte van het hoofdnotebook in een referentie-uitvoering. Alleen referentie-uitvoeringen
activityId Snaar / Touwtje De Livy-taak-id voor de huidige activiteit. Alle contexten
hcReplId Snaar / Touwtje De REPL ID in de modus Hoge Gelijktijdigheid. Modus voor hoge gelijktijdigheid alleen
clusterId Snaar / Touwtje De identiteit van het Synapse Spark-cluster. Alle contexten
poolName Snaar / Touwtje De naam van de Spark-pool die wordt gebruikt. Alle contexten
environmentId Snaar / Touwtje De omgevings-id waar de taak wordt uitgevoerd. Alle contexten
environmentWorkspaceId Snaar / Touwtje De werkruimte-id van de omgeving. Alle contexten
userId Snaar / Touwtje De gebruikers-id van de huidige gebruiker. Alle contexten
userName Snaar / Touwtje De gebruikersnaam van de huidige gebruiker. Alle contexten
currentKernel Snaar / Touwtje De naam van de huidige notebook-kernel. Alleen Python Notebook
productType Snaar / Touwtje De producttype-id (bijvoorbeeld Fabric). Alle contexten

Voorbeelden van gebruik

Basiscontextinformatie openen

Sla het contextobject in de cache op wanneer u meerdere eigenschappen moet lezen.

context = notebookutils.runtime.context

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

Pijplijn controleren versus interactieve uitvoering

Gebruik de isForPipeline vlag om logica te vertakken, afhankelijk van de uitvoeringsmodus. U kunt bijvoorbeeld strengere foutafhandeling toepassen in pijplijnuitvoeringen.

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

Aanbeveling

Gebruik isForPipeline en isReferenceRun samen om vertakkingen in drie richtingen te implementeren voor verschillende uitvoeringscontexten. Dit patroon helpt u bij het aanpassen van het aantal herhaalpogingen, de uitvoerigheid van logboeken en foutafhandelingsstrategieën. Voor productieworkloads vereisen pijplijn- en referentieprocessen doorgaans strenger foutbeheer dan interactieve sessies.

De hiërarchie van de referentie-uitvoering inspecteren

Wanneer een notebook wordt uitgevoerd als onderdeel van een geneste referentie-uitvoering, kunt u de volledige hiërarchie traceren van de huidige uitvoering terug naar de root.

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

Context opnemen in logboekregistratie

Verrijk logboekberichten met uitvoeringscontext voor eenvoudigere foutopsporing en bewaking:

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