Enviar imágenes con la CLI de Databricks

Importante

Esta característica se encuentra en su versión beta. Para utilizarla, un administrador de espacio de trabajo debe habilitar las funciones beta de AI Runtime y las previsualizaciones del Registro de Artefactos de Databricks desde la página de Previsualizaciones del espacio de trabajo.

La CLI Databricks proporciona el comando databricks air images push helper para combinar autenticación Docker, etiquetado de imágenes y envío a Artifact Registry. Detecta automáticamente la región del registro. Puedes usar este asistente en lugar de los pasos manuales de la guía de Artifact Registry. El asistente no crea imágenes ni envía cargas de trabajo.

Prerequisites

Configurar la autenticación del espacio de trabajo

Crea o actualiza un perfil OAuth de espacio de trabajo para el espacio donde quieres almacenar la imagen:

databricks auth login --profile my-databricks-profile

El asistente de credenciales Docker requiere este perfil OAuth de espacio de trabajo. Para los métodos de autenticación compatibles, véase Configurar autenticación Docker.

Subir una imagen local

Por ejemplo, empujar una imagen local llamada my-training-image:v1 a main.ml.training:v1:

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

El comando imprime el nombre de la imagen del Catálogo de Unity para usarlo como environment.unity_catalog_image en tu carga de trabajo YAML. Para este ejemplo, usa main.ml.training:v1, como se muestra en Usar una imagen Docker en una carga de trabajo.

El ayudante reutiliza una imagen fuente local cuando existe una. De lo contrario, extrae la imagen fuente para linux/amd64. Añade --pull para refrescar una imagen fuente de su registro aunque esté disponible localmente. Las imágenes deben usar linux/amd64. Recompile una imagen local incompatible para esa plataforma antes de subirla. Si la imagen fuente está en un registro privado, autentica Docker con ese registro antes de ejecutar el helper.

Para introducir los detalles de la imagen de forma interactiva, ejecuta databricks air images push --profile my-databricks-profile sin las banderas de imagen. Ejecuta databricks air images push --help para ver todas las opciones.

Subir una imagen desde otro registro

También puedes usar el asistente CLI para copiar una imagen existente de otro registro contenedor a Artifact Registry.

El siguiente ejemplo utiliza como fuente un repositorio privado del Amazon Elastic Container Registry (ECR). Para este ejemplo, instala y configura la CLI de AWS con credenciales con las que puedas autenticarte en ECR y extraer la imagen fuente. Estas credenciales de AWS son independientes de tu perfil de Databricks.

Primero, inicia sesión en Docker en el registro ECR de origen. Sustituye el ID de cuenta de AWS, la región, el repositorio y la etiqueta de imagen de ejemplo por tus propios valores. La región de AWS debe coincidir con el registro de ECR de origen, no con el espacio de trabajo de Databricks de destino. Consulta autenticación de registro privado en la documentación de AWS.

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

Luego pasa el URI completo de la imagen ECR como --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

La opción --pull obtiene la imagen linux/amd64 de ECR aunque ya esté almacenada en caché localmente. El asistente utiliza tu instalación local de Docker para extraer, etiquetar y empujar la imagen. La imagen fuente en ECR no ha cambiado. Después de que el push tenga éxito, establece environment.unity_catalog_image en main.ml.training:ecr-v1 en el archivo YAML de tu carga de trabajo.