Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Utilisez notebookutils.runtime pour lire des informations contextuelles sur la session de notebook en cours. Vous pouvez récupérer des métadonnées telles que le nom du bloc-notes, les détails de l’espace de travail, la configuration par défaut de lakehouse, les indicateurs d’exécution de pipeline et la hiérarchie d’exécution de référence sans modifier d’état.
Utilisez le contexte d’exécution pour :
- Configuration dynamique : adaptez le comportement du notebook en fonction de l’environnement d’exécution.
- Logique conditionnelle : logique de branche selon que le notebook s’exécute dans un pipeline ou de manière interactive.
- Débogage et surveillance : incluez les propriétés de contexte dans la sortie du journal et corrélez les exécutions associées.
- Pistes d’audit : capturez les métadonnées d’exécution pour le suivi de conformité et de traçabilité.
Note
Le contexte d’exécution est disponible dans les notebooks Python, PySpark, Scala et R. Le contexte est en lecture seule : vous ne pouvez pas modifier les propriétés retournées par notebookutils.runtime.context. Certaines propriétés sont uniquement renseignées dans des contextes spécifiques, tels que des exécutions de référence ou des exécutions de pipeline, et peuvent retourner null ou des valeurs vides sinon.
Afficher le contexte de session
Utilisez notebookutils.runtime.context pour afficher des informations de contexte pour la session en cours, y compris le nom du bloc-notes, le lakehouse par défaut, les informations de l'espace de travail et si la session s'exécute dans un pipeline.
Le tableau suivant décrit les propriétés disponibles.
| Propriété | Catégorie | Description | Disponibilité |
|---|---|---|---|
currentNotebookName |
Chaîne | Nom du bloc-notes actuel. | Tous les contextes |
currentNotebookId |
Chaîne | ID unique du bloc-notes actuel. | Tous les contextes |
currentWorkspaceName |
Chaîne | Nom de l’espace de travail actuel. | Tous les contextes |
currentWorkspaceId |
Chaîne | ID de l’espace de travail actuel. | Tous les contextes |
defaultLakehouseName |
Chaîne | Nom d'affichage de la lakehouse par défaut, s'il est défini. | Quand le lakehouse par défaut est raccordé |
defaultLakehouseId |
Chaîne | ID du lakehouse par défaut, s’il est défini. | Quand le lakehouse par défaut est raccordé |
defaultLakehouseWorkspaceName |
Chaîne | Nom de l’espace de travail du lakehouse par défaut, s’il est défini. | Quand le lakehouse par défaut est raccordé |
defaultLakehouseWorkspaceId |
Chaîne | ID d’espace de travail de la lakehouse par défaut, s’il est défini. | Quand le lakehouse par défaut est raccordé |
currentRunId |
Chaîne | Dans une exécution de référence, l’ID d’exécution actuel. | Exécutions de référence uniquement |
parentRunId |
Chaîne | Dans une exécution de référence avec des exécutions imbriquées, cet ID est l’ID d’exécution parent. | Exécutions de référence imbriquées uniquement |
rootRunId |
Chaîne | Dans une exécution de référence avec des exécutions imbriquées, cet ID est l’ID d’exécution racine. | Exécutions de référence imbriquées uniquement |
isForPipeline |
Booléen | Indique si l’exécution concerne un pipeline. | Tous les contextes |
isForInteractive |
Booléen | Indique si l’exécution est une session interactive. | Tous les contextes |
isReferenceRun |
Booléen | Indique si l’exécution actuelle est une exécution de référence. | Tous les contextes |
referenceTreePath |
Chaîne | La structure d’arborescence des exécutions de référence imbriquées, utilisée uniquement pour la hiérarchie des instantanés dans la page de surveillance L2. | Exécutions de référence imbriquées uniquement |
rootNotebookId |
Chaîne | ID du bloc-notes racine dans une exécution de référence. | Exécutions de référence uniquement |
rootNotebookName |
Chaîne | Nom du bloc-notes racine dans le cadre d'une exécution de référence. | Exécutions de référence uniquement |
rootWorkspaceId |
Chaîne | ID d’espace de travail du bloc-notes racine dans une exécution de référence. | Exécutions de référence uniquement |
rootWorkspaceName |
Chaîne | Nom de l’espace de travail du bloc-notes racine dans une exécution de référence. | Exécutions de référence uniquement |
activityId |
Chaîne | ID de travail Livy pour l’activité actuelle. | Tous les contextes |
hcReplId |
Chaîne | L'ID REPL en mode haute concurrence. | Mode de haute concurrence uniquement |
clusterId |
Chaîne | Identité du cluster Synapse Spark. | Tous les contextes |
poolName |
Chaîne | Nom du pool Spark utilisé. | Tous les contextes |
environmentId |
Chaîne | ID d’environnement où le travail est en cours d’exécution. | Tous les contextes |
environmentWorkspaceId |
Chaîne | L'ID de l’espace de travail de l’environnement. | Tous les contextes |
userId |
Chaîne | ID d’utilisateur de l’utilisateur actuel. | Tous les contextes |
userName |
Chaîne | Nom d’utilisateur de l’utilisateur actuel. | Tous les contextes |
currentKernel |
Chaîne | Nom du noyau de notebook actuel. | Notebook Python uniquement |
productType |
Chaîne | Identificateur de type de produit (par exemple, Fabric). |
Tous les contextes |
Exemples d’utilisation
Accéder aux informations de contexte de base
Cachez l’objet de contexte lorsque vous devez lire plusieurs propriétés.
context = notebookutils.runtime.context
print(f"Notebook: {context['currentNotebookName']}")
print(f"Workspace: {context['currentWorkspaceName']}")
print(f"Lakehouse: {context['defaultLakehouseName'] or 'None'}")
Vérifier le pipeline et l’exécution interactive
Utilisez le drapeau isForPipeline pour brancher la logique en fonction du mode d’exécution. Par exemple, vous pouvez appliquer une gestion des erreurs plus stricte dans les exécutions du pipeline.
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
Conseil / Astuce
Utilisez isForPipeline et isReferenceRun ensemble pour implémenter une branche tridirectionnelle dans divers contextes d'exécution. Ce modèle vous permet de personnaliser les nombres de nouvelles tentatives, la journalisation détaillée et les stratégies de gestion des erreurs. Pour les charges de travail de production, les exécutions de pipeline et de référence nécessitent généralement une gestion des erreurs plus stricte que les sessions interactives.
Inspecter la hiérarchie d’exécution de référence
Lorsqu’un notebook s’exécute dans le cadre d’une exécution de run de référence imbriquée, vous pouvez tracer la hiérarchie complète depuis l’exécution actuelle jusqu’à la racine :
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")
Inclure le contexte dans la journalisation
Enrichir les messages de journal avec le contexte d’exécution pour faciliter le débogage et la surveillance :