Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте notebookutils.runtime, чтобы прочитать сведения о контексте текущего сеанса блокнота. Вы можете получить метаданные, такие как имя записной книжки, сведения о рабочей области, конфигурация lakehouse по умолчанию, флаги выполнения конвейера и эталонная иерархия запуска без изменения состояния.
Использование контекста среды выполнения для:
- Динамическая конфигурация — адаптация поведения записной книжки в зависимости от среды выполнения.
- Условная логика — ветвление логики в зависимости от того, выполняется ли записная книжка в конвейере или интерактивно.
- Отладка и мониторинг — включение свойств контекста в выходные данные журнала и сопоставление связанных выполнений.
- Журналы аудита — сбор метаданных о выполнении для обеспечения отслеживания соответствия и происхождения данных.
Замечание
Контекст среды выполнения доступен в записных книжках Python, PySpark, Scala и R. Контекст доступен только для чтения. Вы не можете изменить какие-либо свойства, возвращаемые notebookutils.runtime.context. Некоторые свойства заполняются только в определённых контекстах, таких как запуски ссылок или выполнение конвейера, а в остальных случаях могут возвращать null или пустые значения.
Просмотр контекста сеанса
Используйте notebookutils.runtime.context, чтобы просмотреть сведения о контексте текущего сеанса, включая имя записной книжки, данные о lakehouse по умолчанию, сведения о рабочей области и информацию о том, выполняется ли сеанс в конвейере.
В следующей таблице описываются доступные свойства.
| Недвижимость | Тип | Описание | Availability |
|---|---|---|---|
currentNotebookName |
String | Имя текущей записной книжки. | Все контексты |
currentNotebookId |
String | Уникальный идентификатор текущей записной книжки. | Все контексты |
currentWorkspaceName |
String | Имя текущей рабочей области. | Все контексты |
currentWorkspaceId |
String | Идентификатор текущей рабочей области. | Все контексты |
defaultLakehouseName |
String | Отображаемое имя озера по умолчанию, если определено. | Когда lakehouse по умолчанию присоединён |
defaultLakehouseId |
String | Идентификатор озера по умолчанию, если определен. | Когда lakehouse по умолчанию присоединён |
defaultLakehouseWorkspaceName |
String | Имя рабочей области lakehouse по умолчанию, если определено. | Когда lakehouse по умолчанию присоединён |
defaultLakehouseWorkspaceId |
String | Идентификатор рабочего пространства lakehouse по умолчанию, если определен. | Когда lakehouse по умолчанию присоединён |
currentRunId |
String | В эталонном запуске текущий идентификатор выполнения. | Только контрольные запуски |
parentRunId |
String | При эталонном запуске с вложенными запусками этот идентификатор является идентификатором родительского запуска. | Только вложенные ссылки выполняются |
rootRunId |
String | В эталонном запуске с вложенными запусками этот идентификатор является идентификатором корневого запуска. | Только вложенные ссылки выполняются |
isForPipeline |
Boolean | Указывает, является ли данный процесс запуском для конвейера. | Все контексты |
isForInteractive |
Boolean | Является ли запуск интерактивным сеансом. | Все контексты |
isReferenceRun |
Boolean | Указывает, является ли текущий запуск эталонным. | Все контексты |
referenceTreePath |
String | Структура дерева вложенных референсных запусков, используемая только для иерархии моментальных снимков на L2 странице мониторинга. | Только вложенные ссылки выполняются |
rootNotebookId |
String | Идентификатор корневой записной книжки в эталонном запуске. | Только контрольные запуски |
rootNotebookName |
String | Имя корневой записной книжки в эталонном запуске. | Только контрольные запуски |
rootWorkspaceId |
String | Идентификатор рабочей области корневой записной книжки в контрольном запуске. | Только контрольные запуски |
rootWorkspaceName |
String | Название рабочей области корневого блокнота в эталонном запуске. | Только контрольные запуски |
activityId |
String | Идентификатор задания Livy для текущего действия. | Все контексты |
hcReplId |
String | Идентификатор REPL в режиме высокой конкурентности. | Только режим высокой параллелизма |
clusterId |
String | Идентичность кластера Azure Synapse Spark. | Все контексты |
poolName |
String | Имя используемого пула Spark. | Все контексты |
environmentId |
String | Идентификатор среды, в которой выполняется задание. | Все контексты |
environmentWorkspaceId |
String | Идентификатор рабочей области среды. | Все контексты |
userId |
String | Идентификатор пользователя текущего пользователя. | Все контексты |
userName |
String | Имя текущего пользователя. | Все контексты |
currentKernel |
String | Имя текущего ядра записной книжки. | Только для Python notebook |
productType |
String | Идентификатор типа продукта (например, Fabric). |
Все контексты |
Примеры использования
Доступ к базовым сведениям о контексте
Кэшируйте объект контекста при необходимости считывания нескольких свойств.
context = notebookutils.runtime.context
print(f"Notebook: {context['currentNotebookName']}")
print(f"Workspace: {context['currentWorkspaceName']}")
print(f"Lakehouse: {context['defaultLakehouseName'] or 'None'}")
Проверка конвейера по сравнению с интерактивным выполнением
Используйте флаг isForPipeline для ветвления логики в зависимости от режима работы. Например, можно применить более строгую обработку ошибок в запусках конвейера.
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
Подсказка
Используйте isForPipeline и isReferenceRun вместе для реализации трехстороннего ветвления для различных контекстов выполнения. Этот шаблон помогает настроить количество повторных попыток, подробное ведение журнала и стратегии обработки ошибок. Для производственных нагрузок пайплайны и эталонные прогоны обычно требуют более строгого управления ошибками, чем интерактивные сессии.
Проверка эталонной иерархии выполнения
Когда записная книжка выполняется в рамках вложенного ссылочного запуска, можно отслеживать полную иерархию от текущего запуска до корня.
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")
Учет контекста в ведении журнала
Обогащение сообщений журнала с помощью контекста выполнения для упрощения отладки и мониторинга: