Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Use notebookutils.runtime para ler informações de contexto sobre a sessão atual do caderno. Pode recuperar metadados como o nome do caderno, 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 modificar qualquer estado.
Usar o contexto de execução para:
- Configuração dinâmica – Adapte o comportamento do caderno com base no ambiente de execução.
- Lógica condicional – Lógica de ramificação dependendo se o notebook corre num pipeline ou de forma interativa.
- Depuração e monitorização – Incluir propriedades de contexto na saída do log e correlacionar execuções relacionadas.
- Registos de auditoria – Recolha metadados de execução para conformidade e rastreio de linhagem.
Observação
O contexto em tempo de execução está disponível em notebooks Python, PySpark, Scala e R. O contexto é apenas de leitura — não pode modificar nenhuma das propriedades devolvidas 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 devolver null ou valores vazios caso contrário.
Ver contexto da sessão
Use notebookutils.runtime.context para visualizar a informação de contexto da sessão atual, incluindo o nome do caderno, o lakehouse padrão, as informações do espaço de trabalho e se a sessão é executada em um pipeline.
A tabela seguinte descreve as propriedades disponíveis.
| Propriedade | Tipo | Descrição | Availability |
|---|---|---|---|
currentNotebookName |
Cordão | O nome do caderno atual. | Todos os contextos |
currentNotebookId |
Cordão | O identificador único do caderno atual. | Todos os contextos |
currentWorkspaceName |
Cordão | O nome do espaço de trabalho atual. | Todos os contextos |
currentWorkspaceId |
Cordão | O identificador do espaço de trabalho atual. | Todos os contextos |
defaultLakehouseName |
Cordão | O nome de exibição do lakehouse predefinido, se definido. | Quando o lakehouse predefinido está anexado |
defaultLakehouseId |
Cordão | O identificador do lakehouse padrão, se definido. | Quando o lakehouse predefinido está anexado |
defaultLakehouseWorkspaceName |
Cordão | O nome do espaço de trabalho do lakehouse padrão, caso esteja definido. | Quando a casa do lago por defeito está anexada |
defaultLakehouseWorkspaceId |
Cordão | O ID do espaço de trabalho do lakehouse padrão, se definido. | Quando o lakehouse padrão está ligado |
currentRunId |
Cordão | Durante uma execução de referência, o ID de execução atual. | Apenas corridas de referência |
parentRunId |
Cordão | Numa execução de referência com execuções aninhadas, este ID é o ID da execução principal. | Apenas execuções de referência aninhada |
rootRunId |
Cordão | Numa execução referencial com execuções aninhadas, este ID é o ID raiz da execução. | Apenas execuções de referência aninhada |
isForPipeline |
booleano | Se a execução é para um pipeline. | Todos os contextos |
isForInteractive |
booleano | Se a corrida é uma sessão interativa. | Todos os contextos |
isReferenceRun |
booleano | Seja a execução atual uma execução de referência. | Todos os contextos |
referenceTreePath |
Cordão | A estrutura em árvore das referências aninhadas é usada apenas para a hierarquia de instantâneos na página L2 de monitorização. | Apenas execuções de referência aninhada |
rootNotebookId |
Cordão | A ID do notebook raiz numa execução de referência. | Apenas corridas de referência |
rootNotebookName |
Cordão | O nome do caderno raiz numa execução de referência. | Apenas corridas de referência |
rootWorkspaceId |
Cordão | O ID do espaço de trabalho do notebook raiz numa execução de referência. | Apenas corridas de referência |
rootWorkspaceName |
Cordão | O nome do espaço de trabalho do caderno raiz num processo de referência. | Apenas corridas de referência |
activityId |
Cordão | O identificador de trabalho Livy para a atividade atual. | Todos os contextos |
hcReplId |
Cordão | O ID REPL no modo de alta concorrência. | Apenas modo de alta concorrência |
clusterId |
Cordão | A identidade do cluster Synapse Spark. | Todos os contextos |
poolName |
Cordão | O nome da piscina Spark é usado. | Todos os contextos |
environmentId |
Cordão | O ID do ambiente onde o trabalho está a correr. | Todos os contextos |
environmentWorkspaceId |
Cordão | O ID de espaço de trabalho do ambiente. | Todos os contextos |
userId |
Cordão | O identificador do utilizador atual. | Todos os contextos |
userName |
Cordão | O nome de utilizador do utilizador corrente. | Todos os contextos |
currentKernel |
Cordão | O nome do kernel atual do notebook. | Somente Python Notebook |
productType |
Cordão | O identificador do tipo de produto (por exemplo, Fabric). |
Todos os contextos |
Exemplos de utilização
Aceder a informações básicas de contexto
Armazena em cache o objeto de contexto quando precisares de 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'}")
Comparar pipeline contra execução interativa
Utilize o indicador isForPipeline para desviar a lógica dependendo do modo de execução. Por exemplo, pode aplicar um tratamento de erros 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
Sugestão
Utilize isForPipeline e isReferenceRun juntos para implementar ramificações de três vias para diferentes contextos de execução. Este padrão ajuda-te a personalizar a contagem de repetições, a verbosidade dos registos e estratégias de gestão de erros. Para cargas de trabalho em produção, as execuções de pipeline e de referência normalmente exigem um tratamento de erros mais rigoroso do que sessões interativas.
Inspecionar a hierarquia de execuções de referência
Quando um notebook é executado como parte de uma execução de referência em cascata, pode rastrear a hierarquia completa desde a execução atual até à origem.
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 nos logs
Enriquecer mensagens de registo com contexto de execução para facilitar a depuração e monitorização: