Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie notebookutils.runtime zum Lesen von Kontextinformationen zur Sitzung des aktuellen Notizbuchs. Sie können Metadaten wie den Notizbuchnamen, Details zum Arbeitsbereich, die Standardkonfiguration für Lakehouse, Pipelineausführungskennzeichnungen und die Referenzlaufs-Hierarchie abrufen, ohne den Zustand zu ändern.
Verwenden Sie den Laufzeitkontext für:
- Dynamische Konfiguration – Anpassen des Notizbuchverhaltens basierend auf der Ausführungsumgebung.
- Bedingte Logik – Verzweigungslogik, je nachdem, ob das Notizbuch in einer Pipeline oder interaktiv ausgeführt wird.
- Debuggen und Überwachen – Fügen Sie Kontexteigenschaften in die Protokollausgabe ein und korrelieren Sie zugehörige Ausführungen.
- Prüfpfade – Erfassen Sie Ausführungsmetadaten für die Compliance- und Abstammungsverfolgung.
Hinweis
Laufzeitkontext ist in Python-, PySpark-, Scala- und R-Notizbüchern verfügbar. Der Kontext ist schreibgeschützt – Sie können keine der von notebookutils.runtime.context zurückgegebenen Eigenschaften ändern. Einige Eigenschaften werden nur in bestimmten Kontexten ausgefüllt, wie z. B. bei Referenzläufen oder Pipeline-Durchläufen, und können andernfalls null oder leere Werte zurückgeben.
Sitzungskontext anzeigen
Verwenden Sie notebookutils.runtime.context, um Kontextinformationen für die aktuelle Sitzung anzuzeigen, einschließlich des Notizbuchnamens, des Standard-Lakehouse, Informationen zum Arbeitsbereich und ob die Sitzung in einer Pipeline ausgeführt wird.
In der folgenden Tabelle werden die verfügbaren Eigenschaften beschrieben.
| Eigentum | Typ | Beschreibung | Verfügbarkeit |
|---|---|---|---|
currentNotebookName |
String | Der Name des aktuellen Notizbuchs. | Alle Kontexte |
currentNotebookId |
String | Die eindeutige ID des aktuellen Notizbuchs. | Alle Kontexte |
currentWorkspaceName |
String | Der Name des aktuellen Arbeitsbereichs. | Alle Kontexte |
currentWorkspaceId |
String | Die ID des aktuellen Arbeitsbereichs. | Alle Kontexte |
defaultLakehouseName |
String | Der Anzeigename des Standard-Lakehouse, falls definiert. | Wenn das Standardseehaus angefügt ist |
defaultLakehouseId |
String | Die ID des Standard-Lakehouse, falls definiert. | Wenn das Standardseehaus angefügt ist |
defaultLakehouseWorkspaceName |
String | Der Name des Arbeitsbereichs des Standard-Lakehouse, falls definiert. | Wenn das Standardseehaus angefügt ist |
defaultLakehouseWorkspaceId |
String | Die Arbeitsbereichs-ID des Standard-Lakehouses, sofern definiert. | Wenn das Standardseehaus angefügt ist |
currentRunId |
String | Bei einem Referenzlauf die aktuelle Lauf-ID. | Referenzläufe werden nur durchgeführt |
parentRunId |
String | Bei einem Referenzlauf mit geschachtelten Läufen ist diese ID die übergeordnete Lauf-ID. | Geschachtelter Verweis wird nur ausgeführt |
rootRunId |
String | Bei einer Referenzausführung mit geschachtelten Läufen ist diese ID die Stammausführungs-ID. | Geschachtelter Verweis wird nur ausgeführt |
isForPipeline |
Boolean | Gibt an, ob der Durchlauf für eine Pipeline gilt. | Alle Kontexte |
isForInteractive |
Boolean | Gibt an, ob es sich bei der Ausführung um eine interaktive Sitzung handelt. | Alle Kontexte |
isReferenceRun |
Boolean | Ob der aktuelle Lauf ein Referenzlauf ist. | Alle Kontexte |
referenceTreePath |
String | Die Baumstruktur der geschachtelten Referenzläufe wird nur für die Schnappschusshierarchie auf der L2-Überwachungsseite verwendet. | Geschachtelter Verweis wird nur ausgeführt |
rootNotebookId |
String | Die ID des Root-Notebooks in einem Referenzlauf. | Verweis wird nur ausgeführt |
rootNotebookName |
String | Der Name des Stammnotizbuchs in einem Referenzdurchlauf. | Nur Referenzläufe |
rootWorkspaceId |
String | Die Arbeitsbereichs-ID des Root-Notebooks in einer Referenzausführung. | Referenzläufe nur |
rootWorkspaceName |
String | Der Name des Arbeitsbereichs des Stammnotizbuchs in einem Referenzlauf. | Verweis wird nur ausgeführt |
activityId |
String | Die Livy Job ID für die aktuelle Tätigkeit. | Alle Kontexte |
hcReplId |
String | Die REPL-ID im Modus "Hohe Parallelität". | Nur hoher Parallelitätsmodus |
clusterId |
String | Die Identität des Synapse Spark-Clusters. | Alle Kontexte |
poolName |
String | Der Name des verwendeten Spark-Pools. | Alle Kontexte |
environmentId |
String | Die Umgebungs-ID, in der der Auftrag ausgeführt wird. | Alle Kontexte |
environmentWorkspaceId |
String | Die Arbeitsbereichs-ID der Umgebung. | Alle Kontexte |
userId |
String | Die Benutzer-ID des aktuellen Benutzers. | Alle Kontexte |
userName |
String | Der Benutzername des aktuellen Benutzers. | Alle Kontexte |
currentKernel |
String | Der Name des aktuellen Notebook-Kernels. | Nur Python Notebook |
productType |
String | Der Produkttypbezeichner (z. B Fabric. ). |
Alle Kontexte |
Verwendungsbeispiele
Zugreifen auf grundlegende Kontextinformationen
Speichern Sie das Kontextobjekt zwischen, wenn Sie mehrere Eigenschaften auslesen müssen.
context = notebookutils.runtime.context
print(f"Notebook: {context['currentNotebookName']}")
print(f"Workspace: {context['currentWorkspaceName']}")
print(f"Lakehouse: {context['defaultLakehouseName'] or 'None'}")
Überprüfen der Pipeline im Vergleich zur interaktiven Ausführung
Verwenden Sie das isForPipeline Flag, um die Logik abhängig vom Ausführungsmodus zu verzweigen. Sie können z. B. eine strengere Fehlerbehandlung in Pipelineausführungen anwenden.
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
Tipp
Verwenden Sie isForPipeline und isReferenceRun zusammen, um eine dreiwegige Verzweigung für verschiedene Ausführungskontexte zu implementieren. Mit diesem Muster können Sie die Anzahl der Wiederholungen, die Ausführlichkeit der Protokollierung und die Strategien zur Fehlerbehandlung anpassen. Für Produktionsworkloads erfordern Pipeline- und Referenzausführungen in der Regel eine strengere Fehlerbehandlung als interaktive Sitzungen.
Überprüfen Sie die Referenzlaufhierarchie
Wenn ein Notizbuch als Teil einer geschachtelten Referenzausführung ausgeführt wird, können Sie die vollständige Hierarchie von der aktuellen Ausführung zurück zum Stamm nachverfolgen:
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")
Kontext in die Protokollierung einschließen
Optimieren Sie Protokollnachrichten mit Ausführungskontext, um das Debuggen und Überwachen zu vereinfachen: