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

CLI Databricks предоставляет вспомогательную команду databricks air images push для объединения аутентификации Docker, тегирования изображений и отправки в 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, чтобы обновить образ из registry, даже если он доступен локально. Изображения должны содержать 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. Замените пример идентификатора аккаунта 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-файле рабочей нагрузки.