Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Use notebookutils.runtime para ler informações de contexto sobre a sessão atual do notebook. Você pode recuperar metadados como o nome do notebook, detalhes do espaço de trabalho, configuração padrão do lakehouse, flags de execução do pipeline e hierarquia de execução de referência sem alterar nenhum estado.
Use o contexto de runtime para:
- Configuração dinâmica – adaptar o comportamento do notebook com base no ambiente de execução.
- Lógica condicional – lógica de ramificação dependendo se o notebook é executado em um pipeline ou interativamente.
- Depuração e monitoramento – inclua propriedades de contexto na saída do log e correlacione as execuções relacionadas.
- Trilhas de auditoria – capturar metadados de execução para conformidade e acompanhamento de linhagem.
Observação
O contexto de runtime está disponível em blocos de anotações Python, PySpark, Scala e R. O contexto é somente leitura– você não pode modificar nenhuma das propriedades retornadas por notebookutils.runtime.context. Algumas propriedades são preenchidas apenas em contextos específicos, como execuções de referência ou execuções de pipeline, e podem retornar null ou retornar valores vazios de outra forma.
Exibir contexto de sessão
Use notebookutils.runtime.context para exibir informações de contexto para a sessão atual, incluindo o nome do notebook, o lakehouse padrão, as informações do workspace e se a sessão está sendo executada em um pipeline.
A tabela a seguir descreve as propriedades disponíveis.
| Propriedade | Tipo | Descrição | Disponibilidade |
|---|---|---|---|
currentNotebookName |
String | O nome do bloco de anotações atual. | Todos os contextos |
currentNotebookId |
String | A ID exclusiva do notebook atual. | Todos os contextos |
currentWorkspaceName |
String | O nome do espaço de trabalho atual. | Todos os contextos |
currentWorkspaceId |
String | O ID do espaço de trabalho atual. | Todos os contextos |
defaultLakehouseName |
String | O nome de exibição do lakehouse padrão, se definido. | Quando o lakehouse padrão é anexado |
defaultLakehouseId |
String | O ID do lakehouse padrão, caso esteja definido. | Quando o sistema lakehouse padrão está conectado |
defaultLakehouseWorkspaceName |
String | O nome do espaço de trabalho do lakehouse padrão, se definido. | Quando o lakehouse padrão é anexado |
defaultLakehouseWorkspaceId |
String | O ID do espaço de trabalho do lakehouse padrão, se definido. | Quando o lakehouse padrão está conectado |
currentRunId |
String | Em uma execução de referência, a ID de execução atual. | Somente execuções de referência |
parentRunId |
String | Em uma execução de referência com execuções aninhadas, esta ID é a ID principal. | Apenas execuções de referência aninhadas |
rootRunId |
String | Em uma execução de referência com execuções aninhadas, essa ID é a ID da execução raiz. | Somente execuções de referência aninhadas |
isForPipeline |
booleano | Se a execução é para um pipeline. | Todos os contextos |
isForInteractive |
booleano | Se a execução é uma sessão interativa. | Todos os contextos |
isReferenceRun |
booleano | Se a execução atual é uma execução de referência. | Todos os contextos |
referenceTreePath |
String | A estrutura em árvore de execuções de referência aninhadas, usada somente para a hierarquia de snapshots na página de monitoramento L2. | Apenas execuções de referência aninhadas |
rootNotebookId |
String | A ID do notebook raiz em uma execução de referência. | Somente execuções de referência |
rootNotebookName |
String | O nome do notebook raiz em uma execução de referência. | Somente execuções de referência |
rootWorkspaceId |
String | A ID do workspace do notebook raiz em uma execução de referência. | Somente execuções de referência |
rootWorkspaceName |
String | O nome do workspace do notebook principal em uma execução de referência. | Somente execuções de referência |
activityId |
String | A ID do trabalho do Livy para a atividade atual. | Todos os contextos |
hcReplId |
String | O ID do REPL no modo de alta concorrência. | Somente modo de alta simultaneidade |
clusterId |
String | A identidade do cluster Spark do Synapse. | Todos os contextos |
poolName |
String | O nome do pool do Spark que está sendo usado. | Todos os contextos |
environmentId |
String | A ID do ambiente em que o trabalho está em execução. | Todos os contextos |
environmentWorkspaceId |
String | O ID do espaço de trabalho do ambiente. | Todos os contextos |
userId |
String | A ID do usuário atual. | Todos os contextos |
userName |
String | O nome de usuário do usuário atual. | Todos os contextos |
currentKernel |
String | O nome do kernel do notebook atual. | Notebook Python somente |
productType |
String | O identificador de tipo de produto (por exemplo, Fabric). |
Todos os contextos |
Exemplos de uso
Acessar informações básicas de contexto
Armazene em cache o objeto de contexto quando precisar ler várias propriedades.
context = notebookutils.runtime.context
print(f"Notebook: {context['currentNotebookName']}")
print(f"Workspace: {context['currentWorkspaceName']}")
print(f"Lakehouse: {context['defaultLakehouseName'] or 'None'}")
Verificar pipeline versus execução interativa
Use o isForPipeline sinalizador para ramificar a lógica dependendo do modo de execução. Por exemplo, você pode aplicar um tratamento de erro mais rigoroso em execuções de 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
Dica
Use isForPipeline e isReferenceRun em conjunto para implementar ramificação de três vias para diferentes contextos de execução. Esse padrão ajuda você a adaptar a contagem de repetições, a verbosidade de registros e as estratégias de tratamento de erros. Para cargas de trabalho de produção, as execuções de pipeline e referência normalmente exigem tratamento de erros mais rigoroso do que sessões interativas.
Verificar a hierarquia da execução de referência
Quando um notebook é executado como parte de uma execução de referência aninhada, você pode rastrear a hierarquia completa da execução atual até a raiz:
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 no registro em log
Enriquecer as mensagens de log com o contexto de execução para facilitar a depuração e o monitoramento.