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
- Instale a CLI do Databricks 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 com Artifact Registry.
- Crie ou selecione um catálogo e um esquema de destino e obtenha os privilégios necessários do Artifact Registry.
- Instale e começar o Docker em sua máquina local. Docker must be available on your
PATH.
Configurar autenticação do Workspace
Crie ou refresh 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 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:
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.
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:
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.