Fazer push de imagens com a CLI Databricks

Importante

Este recurso está em versão Beta. Para o utilizar, um administrador de espaço de trabalho deve ativar as Funcionalidades Beta em Tempo de Execução da IA e as pré-visualizações do Registo de Artefactos Databricks a partir da página de Pré-visualizações do espaço de trabalho.

A CLI do Databricks fornece o comando helper databricks air images push para combinar autenticação Docker, marcação de imagens e envio para o Registo de Artefactos. Deteta automaticamente a região do registo do sistema. Podes usar este assistente em vez dos passos manuais do guia do Artifact Registry. O assistente não cria imagens nem submete cargas de trabalho.

Prerequisites

Configurar autenticação do espaço de trabalho

Crie ou atualize um perfil OAuth de espaço de trabalho para o espaço onde pretende guardar a imagem:

databricks auth login --profile my-databricks-profile

O assistente de credenciais Docker requer este perfil OAuth do workspace. Para métodos de autenticação suportados, veja Configurar autenticação Docker.

Enviar uma imagem local

Por exemplo, envie uma imagem local chamada my-training-image:v1 para main.ml.training:v1:

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

O comando imprime o nome da imagem do Catálogo Unity para usar como environment.unity_catalog_image no seu YAML da carga de trabalho. Para este exemplo, use main.ml.training:v1, como mostrado em Use a imagem Docker numa carga de trabalho.

O helper reutiliza uma imagem de origem local quando existe. Caso contrário, obtém a imagem de origem para linux/amd64. Adicione --pull para atualizar uma imagem de origem/source do seu registo, mesmo que esteja disponível localmente. As imagens devem usar linux/amd64. Reconstrói uma imagem local incompatível com essa plataforma antes de a enviar. Se a imagem de origem estiver num registo privado, autentique o Docker nesse registo antes de executar o helper.

Para introduzir os detalhes da imagem de forma interativa, execute databricks air images push --profile my-databricks-profile sem as opções da imagem. Execute databricks air images push --help para ver todas as opções.

Fazer push de uma imagem de outro registry

Também pode usar o auxiliar CLI para copiar uma imagem existente de outro Container Registry para o Artifact Registry.

O exemplo seguinte utiliza um repositório privado do Amazon Elastic Container Registry (ECR) como fonte. Neste exemplo, instale e configure a CLI AWS com credenciais que possam autenticar-se no ECR e obter a imagem de origem. Estas credenciais da AWS são independentes do seu perfil Databricks.

Primeiro, autenticar o Docker junto do registo ECR de origem. Substitua o ID da conta AWS de exemplo, a região, o repositório e a etiqueta da imagem pelos seus próprios valores. A região AWS deve corresponder ao registo ECR de origem, não ao espaço de trabalho Databricks de destino. Veja autenticação do registo privado na documentação da AWS.

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

Depois passa o URI completo da imagem 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

A --pull flag recupera a linux/amd64 imagem do ECR mesmo que já esteja em cache localmente. O helper usa a instalação local do Docker para obter, etiquetar e enviar a imagem. A imagem de origem no ECR mantém-se inalterada. Depois de o push ser concluído com êxito, defina environment.unity_catalog_image como main.ml.training:ecr-v1 no ficheiro YAML da sua carga de trabalho.