Crie um sandbox a partir de uma imagem personalizada

Importante

Esse recurso está em Beta. Para habilitar essa pré-visualização no workspace, opte pela configuração Databricks Sandbox na página de Pré-visualizações do workspace. Consulte Gerenciar visualizações do Azure Databricks.

Você pode criar um sandbox a partir da sua própria imagem de contêiner armazenada no Artifact Registry. O Artifact Registry armazena imagens de contêineres como ativos governados no Unity Catalog, então você controla o acesso a elas com privilégios do Unity Catalog. O sandbox começa com os pacotes, ferramentas e configurações da imagem já instalados, então você não precisa instalar dependências toda vez que cria um sandbox.

Para uma visão geral do Databricks Sandbox, veja Databricks Sandbox.

Requirements

  • Seu espaço de trabalho atende aos pré-requisitos do Sandbox do Databricks. Consulte Pré-requisitos.
  • Seu espaço de trabalho atende aos pré-requisitos do Registro de Artefatos, incluindo ativar a versão preliminar do Registro de Artefatos do Databricks. Confira os Requisitos
  • Você tem os privilégios USE CATALOG, USE SCHEMA e READ VOLUME no catálogo e no esquema que contêm a imagem. Veja Conceder permissões.
  • A imagem usa glibc 2.25 ou superior. Se a imagem usar uma base do Ubuntu, use o Ubuntu 18.04 e versões superiores. Imagens que usam musl em vez de glibc, como Alpine Linux e imagens construídas nele (por exemplo, python:<version>-alpine ou node:<version>-alpine), não são suportadas.

Envie uma imagem e crie um sandbox

  1. Construa a imagem com o Docker e envie para o Registro de Artefato. Veja Transmitir uma imagem.

  2. Espere até que o status de aceleração da imagem seja SUCCESS. A aceleração de imagem acontece automaticamente após fazer push e pode levar 15 minutos ou mais. Veja Verificar o status da aceleração da imagem.

  3. Crie o sandbox e defina image_uri para o nome do Catálogo Unity da imagem, no formato catalog.schema.artifact:tag. Para fixar uma versão exata, use um digest em vez de uma tag: catalog.schema.artifact@sha256:<digest>.

    Por exemplo, para criar um sandbox a partir da main.agents.agent-base:v1 imagem, execute o seguinte:

    from databricks.sdk import WorkspaceClient
    from databricks.sdk.service.sandbox import EnvironmentSpec, Sandbox, SandboxSpec
    
    w = WorkspaceClient()
    
    created = w.sandbox.create_sandbox(
        sandbox=Sandbox(
            spec=SandboxSpec(
                environment=EnvironmentSpec(image_uri="main.agents.agent-base:v1"),
            ),
        ),
        sandbox_id="my-custom-sandbox",
    )
    print(created.name)   # "sandboxes/my-custom-sandbox"
    

Um sandbox criado a partir de uma imagem personalizada mantém o mesmo diretório inicial persistente e comportamento de parar e iniciar que qualquer outro sandbox.

Troubleshooting

Se a requisição de criação falhar, verifique a mensagem de erro:

  • Image <uri> is not ready for use: A aceleração da imagem não terminou. Verifique o status de aceleração da imagem e tente novamente depois que ela atingir SUCCESS.
  • Not authorized to access image <uri>: Você não tem os privilégios necessários sobre a imagem. Peça ao dono do catálogo ou do esquema para concedê-los.

Limitations

  • Imagens personalizadas devem ser armazenadas no Artifact Registry. Você não pode criar um sandbox a partir de uma imagem em um registro externo, e o Azure Databricks não cria imagens para você.
  • Sandboxes criados a partir de uma imagem personalizada podem demorar mais para iniciar do que sandboxes que usam o ambiente padrão.

Recursos adicionais