Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Utilice notebookutils.runtime para leer información de contexto sobre la sesión del cuaderno actual. Puede recuperar metadatos como el nombre del cuaderno, los detalles del área de trabajo, la configuración predeterminada de Lakehouse, los indicadores de ejecución de la canalización y la jerarquía de ejecución de referencia sin modificar ningún estado.
Use el contexto en tiempo de ejecución para:
- Configuración dinámica : adapte el comportamiento del cuaderno en función del entorno de ejecución.
- Lógica condicional – Lógica de ramificación en función de si el notebook se ejecuta en un pipeline o de forma interactiva.
- Depuración y supervisión : incluya propiedades de contexto en la salida del registro y ponga en correlación las ejecuciones relacionadas.
- Seguimientos de auditoría – Capturar los metadatos de ejecución para el cumplimiento y la rastreabilidad.
Nota:
El contexto en tiempo de ejecución está disponible en cuadernos de Python, PySpark, Scala y R. El contexto es de solo lectura; no se puede modificar ninguna de las propiedades devueltas por notebookutils.runtime.context. Algunas propiedades solo se rellenan en contextos específicos, como ejecuciones de referencia o ejecuciones de canalización, y pueden devolver null o valores vacíos en caso contrario.
Visualización del contexto de sesión
Use notebookutils.runtime.context para ver la información de contexto de la sesión actual, incluido el nombre del cuaderno, el lago predeterminado, la información del área de trabajo y si la sesión se ejecuta en una canalización.
En la tabla siguiente se describen las propiedades disponibles.
| Propiedad | Tipo | Descripción | Availability |
|---|---|---|---|
currentNotebookName |
String | Nombre del cuaderno actual. | Todos los contextos |
currentNotebookId |
String | Identificador único del cuaderno actual. | Todos los contextos |
currentWorkspaceName |
String | Nombre del área de trabajo actual. | Todos los contextos |
currentWorkspaceId |
String | Identificador del área de trabajo actual. | Todos los contextos |
defaultLakehouseName |
String | Nombre para visualización del lakehouse predeterminado, si está definido. | Cuando se adjunta el lakehouse predeterminado |
defaultLakehouseId |
String | La ID del lakehouse predeterminado, si se ha definido. | Cuando se adjunta el lakehouse predeterminado |
defaultLakehouseWorkspaceName |
String | Nombre del espacio de trabajo del lakehouse por defecto, si está definido. | Cuando se adjunta el lakehouse predeterminado |
defaultLakehouseWorkspaceId |
String | Identificador del área de trabajo del lakehouse por defecto, si se define. | Cuando se adjunta el lakehouse predeterminado |
currentRunId |
String | En una ejecución de referencia, el identificador de ejecución actual. | Solo ejecuciones de referencia |
parentRunId |
String | En una ejecución de referencia con ejecuciones anidadas, este identificador es el identificador de ejecución primario. | Solo se ejecuta la referencia anidada |
rootRunId |
String | En una ejecución de referencia con ejecuciones anidadas, este identificador es el identificador de ejecución raíz. | Solo se ejecuta la referencia anidada |
isForPipeline |
Boolean | Indica si la ejecución es para una canalización. | Todos los contextos |
isForInteractive |
Boolean | Si la ejecución es una sesión interactiva. | Todos los contextos |
isReferenceRun |
Boolean | Si la ejecución actual es una ejecución de referencia. | Todos los contextos |
referenceTreePath |
String | La estructura de árbol de las ejecuciones de referencia anidadas, utilizada exclusivamente para la jerarquía de instantáneas en la página de monitoreo L2. | Solo se ejecuta la referencia anidada |
rootNotebookId |
String | Identificador del cuaderno raíz en una ejecución de referencia. | Solo ejecuciones de referencia |
rootNotebookName |
String | Nombre del cuaderno raíz en una ejecución de referencia. | Solo ejecuciones de referencia |
rootWorkspaceId |
String | Identificador del área de trabajo del cuaderno de notas raíz en una ejecución de referencia. | Solo ejecuciones de referencia |
rootWorkspaceName |
String | Nombre del espacio de trabajo del cuaderno raíz en una ejecución de referencia. | Solo ejecuciones de referencia |
activityId |
String | ID de trabajo de Livy para la actividad en curso. | Todos los contextos |
hcReplId |
String | ID de REPL en modo de alta concurrencia. | Solo modo de alta concurrencia |
clusterId |
String | Identidad del clúster de Spark de Synapse. | Todos los contextos |
poolName |
String | El nombre del grupo de Spark que se está usando. | Todos los contextos |
environmentId |
String | Identificador de entorno donde se ejecuta el trabajo. | Todos los contextos |
environmentWorkspaceId |
String | Identificador del área de trabajo del entorno. | Todos los contextos |
userId |
String | Identificador de usuario del usuario actual. | Todos los contextos |
userName |
String | Nombre de usuario del usuario actual. | Todos los contextos |
currentKernel |
String | Nombre del kernel del cuaderno de notas actual. | Notebook de Python solamente |
productType |
String | Identificador de tipo de producto (por ejemplo, Fabric). |
Todos los contextos |
Ejemplos de uso
Acceso a la información de contexto básica
Almacene en caché el objeto de contexto cuando necesite leer varias propiedades.
context = notebookutils.runtime.context
print(f"Notebook: {context['currentNotebookName']}")
print(f"Workspace: {context['currentWorkspaceName']}")
print(f"Lakehouse: {context['defaultLakehouseName'] or 'None'}")
Revisión del pipeline frente a la ejecución interactiva
Use la isForPipeline marca para bifurcar la lógica en función del modo de ejecución. Por ejemplo, puede aplicar un control de errores más estricto en las ejecuciones de canalización.
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
Sugerencia
Use isForPipeline y isReferenceRun juntos para implementar bifurcaciones triples para distintos contextos de ejecución. Este patrón le ayuda a adaptar los recuentos de reintentos, el nivel de detalle del registro y las estrategias de control de errores. En el caso de las cargas de trabajo de producción, las ejecuciones de canalización y referencia suelen requerir un control más estricto de errores que las sesiones interactivas.
Inspeccionar la jerarquía de ejecución de referencia
Cuando un cuaderno se ejecuta como parte de una ejecución de referencia anidada, puede realizar un seguimiento de la jerarquía completa desde la ejecución actual a la raíz:
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")
Incluir contexto en el registro
Enriquecer los mensajes de registro con contexto de ejecución para facilitar la depuración y la supervisión: