Enviar imágenes con la CLI de Databricks

La CLI Databricks proporciona el comando auxiliar databricks air images push para combinar la autenticación de Docker, el etiquetado de imágenes y el 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 del Registro de Artefactos. El helper no crea imágenes ni envía cargas de trabajo.

Requisitos previos

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. Reconstruye una imagen local incompatible para esa plataforma antes de lanzarla. Si la imagen fuente está en un registro privado, autentica Docker en 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.

Enviar una imagen de otro registro

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

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 que puedan autenticarse a ECR y extraer la imagen fuente. Estas credenciales de AWS son independientes de tu perfil de Databricks.

Primero, autentica Docker en el registro ECR de origen. Sustituye el ejemplo de ID de cuenta, región, repositorio y etiqueta de imagen de AWS 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 descargar, etiquetar y publicar la imagen. La imagen fuente en ECR no ha cambiado. Después de que el push tenga éxito, pon environment.unity_catalog_image en main.ml.training:ecr-v1 YAML en tu carga de trabajo.