Подключение к Databricks с помощью туннеля SSH

Это важно

Эта функция доступна в бета-версии.

Стоимость и ценообразование функций в бета-версии могут меняться.

Туннель SSH (Secure Shell) Azure Databricks соединяет Visual Studio Code, Cursor или ваш терминал с рабочим пространством Azure Databricks и бессерверными вычислениями Azure Databricks, AI Runtime или классическими вычислениями. Используйте его для редактирования файлов рабочего пространства и запуска или отладки скриптов и блокнотов на Python, с вашим Python-окружением и выполнением кода на удалённом вычислительном ресурсе. Подключитесь напрямую к бессерверным вычислениям или настройте многоразовое SSH-соединение с выделенным классическим кластером.

Требования

Запустите SSH-соединение с вашего местного компьютера. Туннель нельзя запустить из другой удалённой среды или из контейнера Docker.

Чтобы подключиться к бессерверным или классическим вычислениям, необходимо иметь:

  • Databricks CLI версии 1.5.0 или выше, установленный на локальном компьютере, с настроенной аутентификацией. Проверьте установленную версию с помощью databricks --version. См. установите или обновите CLI Databricks.
  • Одна из следующих:
    • Visual Studio Code версии 1.110.0 (Universal) или выше и установлено расширение Remote - SSH (1.0.46+).
    • Cursor версии 2.6.11 (Universal) или выше.

Для подключения к serverless-вычислениям необходимо включить переадресацию портов на serverless-вычисления. См. Как управлять переадресацией портов для serverless compute.

Чтобы подключиться к бессерверным вычислениям GPU, необходимо включить функцию среды выполнения ИИ. См. раздел "Среда выполнения ИИ".

Дополнительные требования к классической вычислительной среде

Чтобы подключиться к классическим (выделенным, однопользовательским) вычислениям:

Выберите SSH-соединение

Используйте способ подключения для вашего типа вычислительного ресурса:

Compute Способ подключения Требования к установке
Бессерверные вычисления databricks ssh connect Отдельного этапа настройки SSH нет.
Добавьте --ide vscode или --ide cursor, чтобы запустить IDE.
Среда выполнения ИИ databricks ssh connect --accelerator <accelerator> Отдельного этапа настройки SSH нет.
Добавьте --ide vscode или --ide cursor, чтобы запустить IDE.
Для поддерживаемых ускорителей см. --accelerator.
Классические выделенные однопользовательские вычислительные ресурсы Запустите databricks ssh setup --name <connection-name> в терминале.
Затем запустите SSH-сессию из IDE или запустите ssh <connection-name>.
Выберите выделенный однопользовательский кластер, который соответствует классическим требованиям к вычислениям.
Общие кластеры не поддерживаются.

Для сравнения с Databricks Connect и другими вариантами разработки смотрите раздел «Connect from your IDE».

Подключение к бессерверным вычислениям

Выполнив указанные выше требования, запустите databricks ssh connect в терминале или IDE.

Значение --ide определяет, какой редактор будет запущен, независимо от того, из какого редактора или терминала вы запускаете команду.

Visual Studio Code

databricks ssh connect --ide vscode

CLI открывает окно Visual Studio Code, подключённое к удалённой вычислительной среде.

Cursor

databricks ssh connect --ide cursor

CLI открывает окно Cursor, подключённое к удалённой вычислительной среде.

Terminal

databricks ssh connect

CLI запускает интерактивную сессию SSH.

Для опций команд, включая именованные соединения и профили аутентификации, см. databricks ssh connect.

После подключения откройте проект рабочего пространства и выберите среду Python. Если не удаётся установить соединение, смотрите раздел «Диагностика неполадок при подключении через SSH-туннель».

Подключитесь к бессерверным GPU-вычислениям с помощью AI Runtime

С включенным AI Runtime добавьте --accelerator для использования вычислений на GPU:

databricks ssh connect --accelerator GPU_1xA10

databricks ssh connect предоставляет интерактивный сеанс на одном узле. Для длительных задач обучения или многоузлового распределённого обучения вместо этого отправьте рабочую нагрузку с помощью databricks air. См. Использование CLI Databricks с AI Runtime.

Подключение к классическим вычислениям

Для многократного подключения к классическому выделенному кластеру настройте имя SSH-хоста, затем выберите этот хост в вашем IDE или подключитесь с терминала.

Настройка подключения SSH

Замечание

Настройка подключения SSH требуется только при подключении к классическим вычислениям.

Запустите databricks ssh setup на вашем локальном компьютере. Замените <connection-name> на имя для этого соединения, например my-connection:

databricks ssh setup --name <connection-name>

CLI запрашивает выбрать кластер и добавляет запись хоста в вашу конфигурацию SSH. Вы также можете выбрать кластер напрямую. Замените <cluster-id> на ID вашего выделенного кластера:

databricks ssh setup --name <connection-name> --cluster <cluster-id>

Чтобы настроить, сколько времени ожидает SSH-туннель после отключения последнего клиента, добавьте --shutdown-delay в команду setup. По умолчанию применяется значение 10 минут. Например, чтобы установить 30-минутную задержку для подключений через этот SSH-хост:

databricks ssh setup --name <connection-name> --cluster <cluster-id> --shutdown-delay 30m

Замечание

Для пользователей IntelliJ Databricks рекомендует добавлять --auto-start-cluster=false в команду установки и запускать кластер вручную перед подключением. Это связано с тем, что среды idEs JetBrains запускают все настроенные кластеры при запуске, что может привести к непредвиденным затратам на вычисления.

Подключение с помощью Visual Studio Code или Курсора

  1. Для Visual Studio Code установите расширение Remote SSH. Курсор включает удаленное расширение SSH по умолчанию.

  2. В главном меню интегрированной среды разработки щелкните "View">Палитра команд. Выберите Remote-SSH: Параметры. Кроме того, выберите Параметры: Откройте параметры пользователя (JSON), чтобы изменить их напрямую.

  3. В разделе Remote.SSH: расширения по умолчанию (или remote.SSH.defaultExtensions в settings.json), добавьте ms-Python.Python и ms-toolsai.jupyter.

    При изменении settings.json:

    "remote.SSH.defaultExtensions": [
        "ms-Python.Python",
        "ms-toolsai.jupyter"
    ]
    

    Замечание

    При необходимости увеличьте значение Remote.SSH: время ожидания подключения (или remote.SSH.connectTimeout в settings.json), чтобы уменьшить вероятность ошибок времени ожидания. Время ожидания по умолчанию — 360.

  4. В палитре команд выберите Remote-SSH: Подключиться к узлу.

  5. В раскрывающемся меню выберите подключение, настроенное на первом шаге. IDE подключается в новом окне.

Подключение с использованием IntelliJ IDEs

  1. Следуйте инструкциям по настройке удаленного сервера .
  2. На новом экране подключения введите следующее:
    • Имя пользователя: root
    • Хост: <connection-name>

Подключитесь к классическим вычислительным ресурсам с терминала

Используйте имя соединения, которое вы настроили с помощью databricks ssh setup:

ssh <connection-name>

Для прямого соединения без записи хоста SSH, используемой повторно, можно также использовать CLI. Замените <cluster-id> на идентификатор вашего выделенного кластера:

databricks ssh connect --cluster <cluster-id>

См. databricks ssh connect.

Открывайте проекты рабочего пространства через SSH

По умолчанию databricks ssh connect команда открывается в эфемерном каталоге. Чтобы получить доступ к файлам рабочей области, перейдите в каталог рабочей области из интегрированной среды разработки или терминала:

  • В Visual Studio Code или Cursor в палитре команд (Cmd/Ctrl+Shift+P) выберите Open Folder и перейдите в /Workspace/Users/<your-username>.
  • В окне терминала измените каталог: cd /Workspace/Users/<your-username>

Замечание

Файлы в /Workspace, /Volumesа также /dbfs сохраняются во всех перезапусках кластера. Файлы в /home, /rootа также другие локальные пути являются временными и потеряны при перезапуске.

Запускайте Python и notebooks в сессии SSH

Выберите среду Python, предоставленную вашей SSH-сессией, перед запуском кода. Для классических вычислений эта среда включает встроенные библиотеки Databricks Runtime и библиотеки, ограниченные вычислительным ресурсом.

  1. Откройте палитру команд (CMD/CTRL+SHIFT+P) и выберите Python: Выберите интерпретатор.

  2. Выберите виртуальную pythonEnv-xxx среду из списка. Если вы настроили Python зависимости с помощью флага--base-environment, выберите более длинное имя виртуальной среды из списка параметров. Если виртуальная среда не отображается:

    1. Запустите echo $DATABRICKS_VIRTUAL_ENV из терминала в интегрированной среде разработки.

      Пример выходных данных: /local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/python

    2. Вставьте полный вывод в качестве пути к интерпретатору в запросе Python: Выбрать интерпретатор.

  3. Откройте новый терминал, и виртуальная среда должна автоматически активироваться.

  4. Чтобы запустить ноутбук Jupyter, убедитесь, что виртуальная среда установлена как ядро. Щелкните "Выбрать ядро" в правом верхнем углу записной книжки.

Запуск и отладка Python файлов и .ipynb записных книжек с помощью стандартных расширений Python и Jupyter.

Чтобы использовать Spark в файле Python на бессерверных вычислениях, инициализировать сеанс явным образом:

from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().profile("DEFAULT").getOrCreate()

Управление зависимостями для SSH-сессий

Выберите управление зависимостями для вашего типа вычислений:

Для пакетов не на Python см. Зависимости для пакетов не на Python.

Базовые среды рабочей области (рекомендуется для бессерверной среды выполнения ИИ)

Замечание

Эта функция требует включения поддержки базовой среды бессерверных рабочих областей в предварительной версии заданий. См. статью "Управление предварительными версиями Azure Databricks".

Используйте базовую среду рабочей области с бессерверной средой версии 4 или ниже для предварительной настройки зависимостей Python. SSH-туннель не поддерживает --base-environment в serverless-среде версии 5 и выше. Создайте базовую среду с помощью пользовательского интерфейса рабочей области или команды Databricks CLI databricks create-workspace-base-environment .

Укажите среду с помощью --base-environment параметра при подключении:

databricks ssh connect --base-environment my-workspace-env

Параметр --base-environment принимает отображаемое имя, путь к YAML-файлу рабочей области или идентификатор ресурса. Вы не можете использовать его вместе с --cluster. См. databricks ssh connect.

Библиотеки кластеров (рекомендуется для классических вычислений)

Установите зависимости с помощью интерфейса рабочей области в разделе Compute > Libraries. Они сохраняются при всех перезапусках кластера и доступны в pythonEnv-xxx. См. библиотеки кластера.

Зависимости, отличные от Python

Чтобы сохранить зависимости, отличные от Python, используйте скрипт инициализации, который устанавливает пакеты при запуске вычислений. При необходимости сохраните пакеты в томе Unity Catalog и укажите их в скрипте инициализации. См. статью "Что такое скрипты инициализации?".

Настройка записной книжки для Project

Для зависимостей в области проекта запустите записную книжку, содержащую %pip install команды в начале каждого сеанса:

# Install from pyproject.toml
%pip install .

# Install from a requirements file
%pip install -r requirements.txt

# Install a wheel from Volumes or Workspace
%pip install /Volumes/catalog/schema/volume/your_library.whl

%pip команды включают в себя сторожевые ограничения, относящиеся к Databricks, и распространение зависимостей на узлы исполнителя Spark. Это позволяет определяемым пользователем функциям с пользовательскими зависимостями.

Дополнительные примеры см. в разделе "Управление библиотеками с помощью %pip команд".

Вам не нужно перезапускать ноутбук установки, если вы переподключитесь до закрытия SSH-туннеля. По умолчанию туннель закрывается через 10 минут после отключения последнего клиента. Чтобы изменить эту задержку, используйте --shutdown-delay вместе с командой, соответствующей вашему способу подключения:

  • Для многоразового подключения к классическим вычислительным ресурсам задайте задержку с помощью databricks ssh setup. Сгенерированная запись SSH-хоста приводит к применению задержки, когда вы подключаетесь из своей IDE или запускаете ssh <connection-name>.
  • Для прямого CLI-соединения задайте задержку с помощью команды databricks ssh connect.

Замечание

Несколько сеансов SSH в одном кластере используют одну виртуальную среду.

Используйте Git в SSH-сессии

Это важно

Эта функция доступна в общедоступной предварительной версии. Администраторы рабочей области могут управлять доступом к поддержке интерфейса командной строки Git для папок Git на странице "Предварительные версии ". См. статью "Управление предварительными версиями Azure Databricks".

Вы можете использовать Git CLI в SSH-туннеле с новыми папками Git и с учётными данными Git, которые вы настроили в рабочем пространстве Azure Databricks. См. статью "Использование команд командной строки Git".

Если CLI запрашивает учетные данные вместо их автоматического получения, вам нужно подключить провайдера Git к Azure Databricks. См. статью "Подключение поставщика Git к Databricks".

Поддерживайте работу отсоединённых процессов

По умолчанию, когда SSH-туннель отключается, он останавливает все процессы, запущенные сессией, включая процессы, которые вы отсоединили от сеанса с tmux, setsid или nohup. Перед тем как туннель их остановит, туннель фиксирует предупреждение с их идентификаторами процессов в результатах выполнения задания туннеля. databricks ssh connect печатает ID запуска задания, когда запускает туннель.

Чтобы отсоединённый процесс продолжался после отключения, используйте флаг --keep-detached-processes. Установите флаг на соединении, которое запускает туннель, прежде чем начинать работу, которую хотите оставить работающей. См. Соединения с существующим тоннелем.

  • Serverless или классические вычисления: передайте флаг команде databricks ssh connect.
  • Классические вычисления с настроенным SSH-хостом: передайте флаг в databricks ssh setup. Сгенерированная запись SSH-хоста применяется каждый раз при подключении. Бессерверные соединения не требуют настройки, поэтому эта опция применима только к классическим вычислительным ресурсам.

Следующий пример позволяет отсоединённым процессам работать в бессерверных вычислениях:

databricks ssh connect --keep-detached-processes

В следующем примере отделённые процессы продолжают работать в выделенном кластере:

databricks ssh connect --cluster 0123-456789-abcdefgh --keep-detached-processes

Когда вы используете этот флаг и последний клиент отключается, туннель ведёт себя следующим образом:

  • После этого --shutdown-delay периода туннель проверяет наличие отсоединённых процессов. Пока хотя бы один из них работает, туннель продолжает работать, а не выключается.
  • Отдельные процессы сохраняют доступ к /Workspace и /Volumes.
  • После выхода последнего отделённого процесса туннель закрывается, и выполнение этого задания завершается.

Пока туннель продолжает работать, вы можете снова подключиться к тем же вычислительным ресурсам и повторно подключиться к отсоединённой рабочей среде, например с помощью tmux attach. На бессерверных вычислениях подключитесь с тем же именем соединения. Если опустить --name, CLI выводит имя соединения из вашего рабочего пространства и флагов --accelerator и --base-environment, поэтому изменение любого из флагов запускает отдельное соединение.

Соединения с существующим тоннелем

Режим туннеля фиксируется при запуске, и последующие соединения обрабатывают его следующим образом:

  • Если подключиться с флагом к туннелю, который был запущен без него, CLI запускает новый туннель. Процессы, которые вы отсоединили в существующем туннеле, не сохраняются и останавливаются, когда этот туннель закрывается. В выделенном кластере новый туннель немедленно останавливает существующий, что прекращает его открытые сессии и отсоединенные процессы.
  • Если вы подключаетесь без флага к туннелю, который был запущен с этим флагом, CLI повторно использует этот туннель, и туннель продолжает работать, пока отдельные процессы остаются. Это также относится к соединениям от других записей SSH-хостов в списке или IDE-сеансов к одному и тому же вычислительному ресурсу.

Затраты и максимальный срок службы

Помните о перечисленных ниже моментах.

  • Пока туннель продолжает работать, вычислительный ресурс продолжает работать и влечёт расходы. Классический кластер не завершается автоматически. Простаивающая tmux сессия считается отсоединённым процессом, поэтому закройте её, когда она вам больше не нужна.
  • Запуск задания всё равно останавливается, когда достигает максимального срока жизни, установленного --server-timeout, даже если работают отсоединённые процессы. Этот срок жизни считается с момента запуска выполнения задания, а не с момента, когда последний клиент отключается. После завершения выполнения заданий отсоединенные процессы теряют доступ к /Workspace и /Volumes. При бессерверных вычислениях отсоединённые процессы останавливаются. В классической вычислительной среде они могут продолжать работу без этого доступа до завершения работы кластера. Чтобы сохранить результат длительной отсоединённой задачи, сохраняйте его с помощью Azure Databricks SDK или REST API вместо записи в пути /Workspace или /Volumes. См . статью "Работа с файлами в томах каталога Unity".
  • Для более длительной работы используйте задания или пакеты .

Запустите программных агентов в SSH-сессии

Вы можете запускать Claude Code и Codex в SSH-сессиях без какой-либо установки или настройки. Агенты отправляют запросы на модель через Unity Gateway в вашем рабочем пространстве и аутентифицируются с учётными данными вашей SSH-сессии.

Требования к агентам для программирования

  • Databricks CLI версии 1.23.0 или выше на вашем локальном компьютере.

  • Unity Gateway включён для вашего рабочего пространства с доступом к нужным моделям. См. требования к краткому руководству по агенту программирования.

  • Исходящий HTTPS-доступ от вычислительной системы к следующим хостам. При первом запуске оттуда загружаются инструменты агентов:

    • github.com и nodejs.org.
    • PyPI: pypi.org и files.pythonhosted.org
    • Реестр NPM: registry.npmjs.org

    Если в вычислительном образе уже есть uv или npm, лаунчер пропускает его загрузку.

Запустить агента для программирования

  1. Подключитесь к своему вычислительному ресурсу. См. раздел «Выбор SSH-подключения» для различных способов подключения.

  2. В терминале сессии SSH запустите агента:

    claude
    

    или

    codex
    

    Любые аргументы, которые вы добавляете, передаются агенту без изменений.

Чтобы запустить агент без открытия интерактивной сессии, передайте команду агента после --. Удалённая оболочка интерпретирует команду, поэтому оберните всю команду в одинарные кавычки, чтобы сохранить аргументы в кавычках. Например, чтобы запустить Claude Code в неинтерактивном режиме:

databricks ssh connect -- 'claude -p "Summarize the notebooks in my workspace home folder"'

Команды, переданные после --, запускаются в вашей домашней папке на вычислительной системе, а не в папке workspace home.

При первом запуске агента на вычислительной системе лаунчер автоматически загружает и устанавливает инструменты агента.

Ограничения агентов для программирования

  • Инструменты агента, история разговоров и настройки агента хранятся в вашей домашней директории на вычислительной системе. При использовании бессерверных вычислительных ресурсов эта папка теряется при отключении вычислительной системы. В выделенном кластере он сохраняется между SSH-сеансами до перезапуска или завершения кластера. Чтобы сохранить свою работу, сохраняйте файлы в /Workspace или /Volumes. См. Файлы исчезают или окружение сбрасывается после перезапуска кластера.
  • Если вы самостоятельно устанавливаете claude или codex на вычислительном узле, эта установка имеет приоритет и не настроена для Unity Gateway.

Ограничения тоннеля SSH

Туннель SSH, предоставляемый Databricks, имеет следующие ограничения:

  • Общие кластеры не поддерживаются.
  • Файлы, редактируемые за пределами /Workspace, /Volumesи /dbfs теряются при перезапуске кластера.
  • Для каждого кластера разрешено не более 10 подключений SSH.
  • Неактивные сеансы могут удаляться через 1 час.
  • Туннель SSH нельзя запустить из других удаленных сред или контейнеров Docker.
  • При одновременном открытии трех или нескольких записных книжек Jupyter могут возникнуть проблемы с производительностью или подключением.

Поведение ноутбука в сессиях SSH

При использовании туннеля SSH существуют некоторые различия в записных книжках:

  • Файлы Python не определяют глобальные значения Databricks (например spark , или dbutils). Их необходимо импортировать явным образом с from databricks.sdk.runtime import spark.
  • Для записных книжек ipynb доступны следующие функции:
    • Глобальные переменные Databricks: display, displayHTML, dbutils, table, sql, udf, getArgument, sc, sqlContext, spark
    • %sql волшебная команда для выполнения ячеек SQL

Для работы с исходным кодом Python "записные книжки":

  • Выполните поиск для jupyter.interactiveWindow.cellMarker.codeRegex и задайте его значение:

    ^# COMMAND ----------|^# Databricks notebook source|^(#\\s*%%|#\\s*\\<codecell\\>|#\\s*In\\[\\d*?\\]|#\\s*In\\[ \\])
    
  • Выполните поиск для jupyter.interactiveWindow.cellMarker.default и задайте его значение:

    # COMMAND ----------
    

Диагностика неполадок SSH-туннельных соединений

Начните с симптома, который соответствует сбою:

Симптом Первая проверка
SSH-соединение выходит из строя или превышает время ожидания. Проверьте доступ к рабочему пространству по HTTPS и WebSocket. Для классических вычислений также проверьте состояние кластера и тайм-аут IDE. См. Не удается установить SSH-соединение или истекает время ожидания.
CLI сообщает, что не может найти code. Установите команду shell Visual Studio Code в локальной PATH. См. командаcode не найдена.
Аутентификация CLI не проходит. Проверьте профиль CLI и, для классических вычислений, разрешения для кластера. См. ошибки аутентификации CLI.
CLI выводит invalid_grant с Refresh token is invalid. Войдите снова в рабочее пространство с помощью того же CLI-профиля, затем попробуйте подключиться снова. См. Токен обновления недействителен.
Python-код или блокноты не работают после подключения. Проверьте выбранный интерпретатор или ядро ноутбука. См. Python-код или блокноты не запускаются в сессии SSH.
Файлы исчезают после перезагрузки кластера. Проверьте, были ли файлы сохранены на эфемерном локальном пути. См. Файлы исчезают или окружение сбрасывается после перезапуска кластера.
claude или codex не запускается. Проверьте, что Unity Gateway включён и что ваш токен и разрешения позволяют доступ. См. Coding agent не запускается.

Не удается установить SSH-соединение или истекает время ожидания

  • Для классических вычислений убедитесь в интерфейсе рабочего пространства, что кластер работает.
  • Убедитесь, что ваша сеть, VPN и межсетевой экран разрешают HTTPS- и WebSocket-трафик к домену вашего рабочего пространства. Тоннель SSH не использует порт 22. Он туннелирует весь трафик через ту же HTTPS-конечную точку, что и другие команды CLI Databricks. См . раздел "Настройка правил брандмауэра доменных имен".
  • Если прокси-сервер или фаервол проверяет TLS-трафик, убедитесь, что он разрешает запрос на переключение на WebSocket. Посредник, который блокирует или снимает обновление, вызывает сбой соединения или тайм-аут. Попросите сетевого администратора разрешить обновления WebSocket домену рабочего пространства или обойти TLS-инспекцию для этого домена.
  • Если вы подключаетесь через корпоративный HTTP-прокси, задайте переменную среды HTTPS_PROXY или используйте NO_PROXY, чтобы обойти прокси для домена вашего рабочего пространства. SSH-туннель использует ту же конфигурацию прокси, что и другие команды CLI Databricks. См. конфигурацию прокси-сервера.
  • Проверьте, есть ли у вашего локального компьютера HTTPS-доступ к github.com и release-assets.githubusercontent.com.
  • Увеличьте время ожидания SSH. См. статью "Подключение с помощью Visual Studio Code" или "Курсор".
  • Для ошибок несоответствия ключей удалите ~/.databricks/ssh-tunnel-keys и повторно выполните команду databricks ssh setup.
  • Для ошибок "идентификация удаленного узла изменилась", проверьте файл ~/.ssh/known_hosts и удалите записи, связанные с вашим кластером.
  • Сеансы SSH могут прерываться через 1 час, и к одному кластеру можно установить не более 10 SSH-подключений. См. ограничения тоннеля SSH.

code Команда не найдена

Если вы видите Error: exec: "code": executable file not found in $PATH, откройте палитру команд (Cmd/CTRL+SHIFT+P), выберите команду оболочки: установить команду "code" в PATH и перезапустить IDE или сеанс терминала.

Ошибки аутентификации CLI

  • Войдите в рабочее пространство с помощью databricks auth login.
  • Для классических вычислений убедитесь, что у вас есть разрешение CAN ATTACH TO на кластере или разрешение CAN RESTART, если кластер не запущен.

Токен обновления недействителен

Если databricks ssh connect завершается с ошибками error getting token, invalid_grant и Refresh token is invalid, сервер авторизации отклонил сохранённый токен обновления OAuth для CLI. Войдите снова, чтобы получить новую сессию:

  1. Определите профиль конфигурации для рабочего пространства, к которому хотите подключиться:

    databricks auth profiles --skip-validate
    
  2. Войдите снова с тем профилем. Замените <workspace-url> на URL рабочего пространства, без пути /oidc/v1/token и <profile-name> на соответствующее имя профиля:

    databricks auth login --host <workspace-url> --profile <profile-name>
    

    Завершите процесс входа через браузер.

  3. Попробуйте повторить соединение с тем же профилем:

    databricks ssh connect --ide vscode --profile <profile-name>
    

    Используйте --ide cursor для курсора или опустите --ide для терминальной сессии.

Если ошибка сохраняется, проверьте, что команда, завершившаяся ошибкой, нацелена на то же рабочее пространство и профиль, в который вы только что вошли. См. OAuth-аутентификацию пользователь‑машина (U2M).

Python-код или блокноты не работают в SSH-сессии

Файлы исчезают или среда сбрасывается после перезапуска кластера

  • Файлы в /Workspace, /Volumes и /dbfs точках монтирования сохраняются после перезапуска кластера. Файлы в /home, /rootа также другие локальные пути являются временными и потеряны при перезапуске.
  • Используйте управление библиотекой кластера для постоянных зависимостей. При необходимости автоматизируйте переустановки с помощью скриптов инициализации. См. статью "Что такое скрипты инициализации?".

Агент для программирования не запускается

Когда вы запускаете claude или codex, лаунчер проверяет, что вы можете добраться до Unity Gateway, прежде чем загрузить инструменты агента. Если у вас нет доступа к Unity Gateway, встроенные агенты не могут запускаться. Сопоставьте сообщение об ошибке с причиной:

  • Unity Gateway не включён в этой рабочей области: попросите администратора рабочей области включить Unity Gateway. См. предварительные требования.
  • Доступ к сервису модели не удалось проверить: проверьте, что вы соответствуете требованиям Unity Gateway, или попросите администратора вашего рабочего пространства дать доступ к моделям.
  • Сбой на этапе установки, например ✗ Installing Node.js followed by failed to download: Проверьте, может ли вычислительный ресурс достигать github.com, nodejs.org, pypi.org, files.pythonhosted.org и registry.npmjs.org по HTTPS. См. Требования к агентам для программирования.

Если claude или codex не найдены, проверьте, что ваш локальный CLI Databricks — версии 1.23.0 или выше, затем подключитесь снова. См. Требования к агентам для программирования.

Ошибка при настройке SSH в Windows (WSL)

Запустите databricks ssh setup непосредственно в Windows, а не в WSL. Экземпляр Windows Visual Studio Code не может найти конфигурации SSH, созданные на стороне WSL.

Часто задаваемые вопросы

Требуется ли для бессерверных вычислений настройка SSH?

No. После установки и аутентификации CLI Databricks используйте databricks ssh connect для бессерверных вычислений. Команда databricks ssh setup настраивает повторно используемые записи SSH-хостов для классических выделенных вычислений.

Требуется ли для SSH-туннеля Databricks порт 22?

No. SSH-туннель передаёт трафик через HTTPS в домен вашего рабочего пространства и требует поддержки WebSocket. Ваша сеть, VPN, файрвол и прокси должны разрешать этот трафик. См. Не удается установить SSH-соединение или истекает время ожидания.

Как туннель SSH отличается от Databricks Connect?

Databricks Connect позволяет создавать код с помощью API Spark и выполнять их удаленно на вычислительных ресурсах Databricks, а не в локальном сеансе Spark. Расширение Databricks Visual Studio Code использует Databricks Connect для обеспечения встроенной отладки пользовательского кода в Databricks.

SSH-туннель позволяет получить доступ к рабочему пространству из вашего IDE и перемещает всю вашу среду разработки на вычислительные ресурсы. Python, ядро сеанса и выполнение кода работают в Azure Databricks с доступом к вычислительным ресурсам.

Как защищены код и данные?

SSH-трафик шифруется по принципу end-to-end, а код работает на вычислительных ресурсах Azure Databricks, к которым вы подключаетесь. Аутентификация использует CLI Databricks и ваш настроенный профиль рабочего пространства. См. Какие методы аутентификации поддерживаются.

Какие интегрированные среды разработки поддерживаются?

Visual Studio Code и Cursor официально поддерживаются. Любая интегрированная среда разработки с возможностями SSH совместима, но тестируются только VS Code и Cursor.

Могу ли я использовать агентов для программирования в сессии SSH?

Yes. В сессии SSH на бессерверных вычислительных ресурсах или выделенном кластере выполните claude или codex. Агенты используют Unity Gateway без дополнительной настройки. См. Запуск агентов для программирования в сессии SSH.

Доступны ли все функции записной книжки Databricks из интегрированной среды разработки?

Некоторые функции, такие как display(), dbutilsи %sql доступны с ограничениями или ручной настройкой. См. Поведение ноутбука в сессиях SSH.

Запускается ли кластер автоматически при подключении с помощью туннеля SSH?

Да, но если для запуска кластера требуется больше времени ожидания подключения, попытка подключения завершится ошибкой. Чтобы предотвратить это, увеличьте значение Remote.SSH: подключите время ожидания из палитры команд (или remote.SSH.connectTimeout в settings.json), чтобы уменьшить вероятность ошибок времени ожидания.

Как узнать, запущен ли кластер?

Перейдите к вычислению в пользовательском интерфейсе рабочей области Databricks и проверьте состояние кластера. Кластер должен показывать состояние работа, чтобы подключение SSH работало.

Как отключить сеанс SSH/IDE?

Сеанс можно отключить, закрыв окно интегрированной среды разработки, используя параметр "Отключить " в интегрированной среде разработки, закрыв терминал SSH или выполнив exit команду в терминале.

Как остановить кластер и избежать расходов, когда я не работаю?

Чтобы немедленно остановить кластер, завершите работу кластера из пользовательского интерфейса рабочей области. Перейдите к разделу "Вычисления " в пользовательском интерфейсе рабочей области Databricks, найдите кластер и нажмите кнопку "Завершить " или "Остановить".

Задайте короткую политику автоматического завершения в кластере из пользовательского интерфейса рабочей области. После отключения SSH-туннель ожидает в течение периода shutdown-delay (по умолчанию: 10 минут), затем начинает действовать тайм-аут простоя кластера. Если вы используете --keep-detached-processes, кластер не завершается автоматически, пока работают отдельные процессы. Это также относится к соединениям без флага, которые повторно используют туннель, запущенный с ним. См. Соединения с существующим тоннелем.

Как обрабатывать постоянные зависимости?

Зависимости, установленные во время сеанса, теряются после перезапуска кластера. Используйте постоянное хранилище (/Workspace/Users/<your-username>) для требований и сценариев установки. Используйте библиотеки кластера или скрипты инициализации для автоматизации.

Какие методы проверки подлинности поддерживаются?

Проверка подлинности использует CLI Databricks и ваш файл конфигурации профилей ~/.databrickscfg. Ключи SSH обрабатываются туннельом SSH.

Можно ли подключиться к внешним базам данных или службам из кластера?

Да, если сеть кластера разрешает исходящие подключения и у вас есть необходимые библиотеки.

Можно ли использовать дополнительные расширения интегрированной среды разработки?

Большинство расширений работают при установке в удаленном сеансе SSH в зависимости от интегрированной среды разработки и кластера. Visual Studio Code по умолчанию не устанавливает локальные расширения на удаленных узлах. Их можно установить вручную, открыв панель расширений и включив локальные расширения на удаленном узле. Вы также можете настроить Visual Studio Code для удаленной установки определенных расширений. См. статью "Подключение к Databricks".

Да, однако администраторы рабочей области должны добавить URL-адреса маркетплейсов расширений Visual Studio Code и Cursor в список разрешённых. Локальный компьютер также должен иметь возможность доступа к Интернету.