Enviar imagens com a CLI do Databricks
Versão beta
Esse recurso está em Beta. Para usá-lo, um administrador do espaço de trabalho deve ativar as prévias recursos Beta do Runtime de AI e Registro de Artefatos do Databricks na página Pré-visualizações do espaço de trabalho.
A CLI do Databricks fornece o comando auxiliar databricks air images push para combinar a autenticação do Docker, a marcação de imagem e o envio para o Artifact Registry. Ele detecta automaticamente a região do registro. Você pode usar esse auxiliar em vez dos passos manuais no guia do Artifact Registry. O auxiliar não cria imagens nem envia workloads.
Pré-requisitos
- Instalar o Databricks CLI versão 1.19.0 ou acima. Consulte Instalar ou atualizar a CLI do Databricks.
- Configure o Artifact Registry no workspace onde você deseja armazenar a imagem. Consulte Começar a usar o Artifact Registry.
- Criar ou selecionar um catálogo e esquema de destino e obter os privilégios necessários do Artifact Registry.
- Instale e comece o Docker na sua máquina local. O Docker deve estar disponível em seu
PATH.
Configurar autenticação do workspace
Crie ou faça refresh de um perfil OAuth do workspace para o workspace onde você deseja armazenar a imagem:
databricks auth login --profile my-databricks-profile
O auxiliar de credenciais do Docker requer este perfil OAuth de workspace. Para métodos de autenticação compatíveis, consulte Configurar autenticação do Docker.
Push de 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 Unity Catalog para usar como environment.unity_catalog_image no YAML da sua carga de trabalho. Para este exemplo, use main.ml.training:v1, como mostrado em Usar uma Docker Image em uma carga de trabalho.
O helper reutiliza uma imagem de origem local quando existe uma. Caso contrário, ele puxa a imagem de origem para linux/amd64. Adicione --pull para refresh uma imagem de origem de seu registro, mesmo que esteja disponível localmente. As imagens devem usar linux/amd64. Reconstrua uma imagem local incompatível para essa plataforma antes de enviá-la. Se a imagem de origem estiver em um registro privado, autentique o Docker nesse registro antes de executar o helper.
Para inserir os detalhes da imagem de forma interativa, execução databricks air images push --profile my-databricks-profile sem os sinalizadores de imagem. Execução databricks air images push --help para todas as opções.
Envie uma imagem de outro registro
Você também pode usar o auxiliar da CLI para copiar uma imagem existente de outro registro de contêiner para o Artifact Registry.
O exemplo a seguir usa um repository privado do Amazon Elastic Container Registry (ECR) como fonte. Para este exemplo, instale e configure a AWS CLI com credenciais que possam autenticar no ECR e pull da imagem de origem. Essas credenciais da AWS são separadas do seu perfil do Databricks.
Primeiro, autentique o Docker no registro ECR de origem. Substitua o exemplo de ID da account AWS, região, repositório e tag de imagem pelos seus próprios valores. A região da AWS deve corresponder ao registro ECR de origem e não ao workspace do Databricks de destino. Consulte Autenticação de registro 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
Em seguida, passe 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
O sinalizador --pull busca a imagem linux/amd64 do ECR mesmo se ela já estiver armazenada em cache localmente. O auxiliar usa sua instalação local do Docker para extrair, marcar e enviar a imagem. A imagem de origem no ECR não foi alterada. Após o envio ser bem-sucedido, defina environment.unity_catalog_image para main.ml.training:ecr-v1 no YAML de carga de trabalho.