Skicka bilder med Databricks CLI

Important

Den här funktionen finns i Beta. För att använda det måste arbetsytans administratör aktivera förhandsversionerna AI Runtime Beta Features och Databricks Artifact Registry på arbetsytans sida Förhandsversioner.

Databricks CLI tillhandahåller hjälpkommandot databricks air images push för att kombinera Docker-autentisering, bildtaggning och att skicka till Artifact Registry. Den känner automatiskt av registerregionen. Du kan använda detta hjälpprogram istället för de manuella stegen i Artifact Registry-guiden. Hjälparen bygger inte bilder eller skickar in arbetslaster.

Prerequisites

Konfigurera autentisering för arbetsyta

Skapa eller uppdatera en OAuth-profil för arbetsytan för arbetsytan där du vill lagra bilden:

databricks auth login --profile my-databricks-profile

Docker-inloggningshjälparen kräver denna arbetsyta OAuth-profil. För stödda autentiseringsmetoder, se Sätt upp Docker-autentisering.

Skicka upp en lokal bild

Till exempel, skicka en lokal bild med namnet my-training-image:v1 till main.ml.training:v1:

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

Kommandot skriver ut namnet på Unity Catalog-bilden för att använda som environment.unity_catalog_image i din arbetsbelastnings-YAML. För detta exempel, använd main.ml.training:v1, som visas i Använd en Docker-avbild i en arbetslast.

Hjälparen återanvänder en lokal källbild när en sådan finns. Annars hämtar den källbilden från linux/amd64. Lägg till --pull för att hämta om en källavbild från registret även om den redan finns lokalt. Bilder måste använda linux/amd64. Bygg om en inkompatibel lokal image för den plattformen innan du pushar den. Om källbilden finns i ett privat registry, autentisera Docker till det registret innan du kör helpern.

För att mata in bilddetaljerna interaktivt, kör databricks air images push --profile my-databricks-profile utan bildflaggorna. Kör databricks air images push --help för alla alternativ.

Skicka en bild från ett annat registry

Du kan också använda CLI-hjälparen för att kopiera en befintlig containeravbild från ett annat containerregister till Artifact Registry.

Följande exempel använder en privat Amazon Elastic Container Registry (ECR)-lagringsplats som källa. För detta exempel, installera och konfigurera AWS CLI med autentiseringsuppgifter som kan autentisera sig mot ECR och hämta källbilden. Dessa AWS-inloggningsuppgifter är separata från din Databricks-profil.

Först, autentisera Docker mot källregistret ECR. Ersätt exempelet på AWS-konto-ID, region, repository och bildtagg med dina egna värden. AWS-regionen måste matcha källregistret ECR, inte destinations-Databricks-arbetsytan. Se autentisering av privat register i AWS-dokumentationen.

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

Ange sedan hela ECR-bildens URI som --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-flaggan hämtar linux/amd64-bilden från ECR även om den redan är cachelagrad lokalt. Hjälparen använder din lokala Docker-installation för att hämta, tagga och pusha bilden. Källbilden i ECR är oförändrad. När pushen lyckas, ställ in environment.unity_catalog_image till main.ml.training:ecr-v1 i YAML-filen för din arbetsbelastning.