Pular para o conteúdo principal

Enviar imagens com a CLI do Databricks

A CLI do Databricks fornece o comando auxiliar databricks air images push para combinar autenticação do Docker, tag de imagem e envio para o Artifact Registry. Ele detecta a região do registry automaticamente. Você pode usar este auxiliar em vez dos passos manuais no Artifact Registry guia. O auxiliar não cria imagens nem envia cargas de trabalho.

Pré-requisitos​

Configurar autenticação do Workspace​

Crie ou refresh 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 de OAuth do workspace. Para obter os métodos de autenticação compatíveis, consulte Configurar autenticação do Docker.

Enviar 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 Unity Catalog a ser usado como environment.unity_catalog_image no YAML da sua carga de trabalho. Para este exemplo, use main.ml.training:v1, conforme mostrado em Use a Docker Image in a workload.

O auxiliar reutiliza uma imagem de origem local quando ela existe. Caso contrário, ele obtém a imagem de origem para linux/amd64. Adicione --pull para refresh uma imagem de origem a partir do seu registro, mesmo que ela esteja disponível localmente. As imagens devem usar linux/amd64. Recompile 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 auxiliar.

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.

Enviar uma imagem de outro registro​

You can also use the CLI helper to copy an existing image from another container registry to Artifact Registry.

O exemplo a seguir usa um repository privado do Amazon Elastic Container Registry (ECR) como origem. Para este exemplo, instale e configure a AWS CLI com credenciais que possam se autenticar no ECR e puxar a imagem de origem. These AWS credentials are separate from your Databricks profile.

Primeiro, autentique o Docker no registro do ECR de origem. Substitua o exemplo de ID de account, região, repositório e image tag da AWS pelos seus próprios valores. A região da AWS deve corresponder ao registro do 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 do 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

A flag --pull busca a imagem linux/amd64 do ECR mesmo que ela já esteja em cache localmente. O auxiliar usa sua instalação local do Docker para obter, adicionar uma tag e enviar a imagem. A imagem de origem no ECR permanece inalterada. Após a conclusão do envio, defina environment.unity_catalog_image como main.ml.training:ecr-v1 no YAML da sua workload.