Pular para o conteúdo principal

Enviar imagens com a CLI do Databricks

info

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​

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:

Shell
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:

Shell
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.

Shell
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:

Shell
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.