Отправка образов с помощью CLI Databricks

Important

Эта функция доступна в бета-версии. Чтобы использовать его, администратор рабочего пространства должен включить бета-функции AI Runtime и предпросмотр реестра артефактов Databricks на странице предварительного просмотра workspace.

CLI Databricks предоставляет вспомогательную команду databricks air images push для объединения аутентификации Docker, тегирования изображений и отправки в Artifact Registry. Он автоматически определяет регион системного реестра. Вы можете использовать этот помощник вместо инструкций из руководства по Artifact Registry. Помощник не создаёт изображения и не отправляет задания.

Prerequisites

Настроить аутентификацию рабочего пространства

Создайте или обновите профиль рабочего пространства OAuth для рабочего пространства, где хотите сохранить изображение:

databricks auth login --profile my-databricks-profile

Помощник учетных данных Docker требует этот профиль OAuth рабочего пространства. Для поддерживаемых методов аутентификации см. раздел «Настройка аутентификации Docker».

Отправить локальное изображение

Например, отправьте локальное изображение с именем my-training-image:v1 в main.ml.training:v1:

databricks air images push \
  --profile my-databricks-profile \
  --source my-training-image:v1 \
  --catalog main \
  --schema ml \
  --artifact training:v1

Команда выводит имя образа Unity Catalog, которое следует использовать как environment.unity_catalog_image в YAML-файле рабочей нагрузки. В этом примере используйте main.ml.training:v1, как показано в статье «Использование образа Docker в рабочей нагрузке».

Компонент использует повторно локальное исходное изображение, если оно уже есть. В противном случае он извлекает исходное изображение из linux/amd64. Добавьте --pull для обновления исходного изображения из его реестра, даже если оно доступно локально. Изображения должны использовать linux/amd64. Перестройте несовместимый локальный образ для этой платформы перед отправкой его. Если исходный образ находится в частном реестре, перед запуском вспомогательной утилиты авторизуйте Docker в этом реестре.

Чтобы интерактивно ввести детали изображения, запустите databricks air images push --profile my-databricks-profile без флагов изображения. Запустите databricks air images push --help для просмотра всех параметров.

Загрузите образ из другого реестра

Вы также можете использовать помощник CLI, чтобы скопировать существующее изображение из другого реестра контейнера в Реестр артефактов.

В следующем примере используется приватный репозиторий Amazon Elastic Container Registry (ECR) в качестве исходного источника. В этом примере установите и настройте AWS CLI с учётными данными для аутентификации в ECR и получения исходного образа. Эти учетные данные AWS отделены от вашего профиля Databricks.

Сначала выполните аутентификацию Docker в исходном реестре ECR. Замените пример ID аккаунта AWS, регион, репозиторий и тег изображения на свои собственные значения. Регион AWS должен совпадать с исходным ECR-реестром, а не с целевым рабочим пространством Databricks. См. раздел «Аутентификация для частного реестра» в документации AWS.

aws ecr get-login-password --region us-west-2 | \
  docker login --username AWS --password-stdin \
  123456789012.dkr.ecr.us-west-2.amazonaws.com

Затем передайте полный URI изображения ECR как --source:

databricks air images push \
  --profile my-databricks-profile \
  --source 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-training-image:v1 \
  --catalog main \
  --schema ml \
  --artifact training:ecr-v1 \
  --pull

Флаг --pull получает образ linux/amd64 из ECR, даже если он уже есть в локальном кэше. Помощник использует вашу локальную установку Docker для загрузки, тегирования и отправки образа в реестр. Исходное изображение в ECR осталось без изменений. После успешного продвижения установите environment.unity_catalog_image на main.ml.training:ecr-v1 в YAML-файле вашей рабочей нагрузки.