Pular para o conteúdo principal

Criar um sandbox a partir de uma imagem personalizada

info

Versão beta

Esse recurso está na versão Beta. Para ativar esta prévia de recurso no workspace, escolha a configuração Databricks Sandbox na página Prévias do workspace. Consulte Gerenciar prévias do Databricks.

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

Para obter uma visão geral do Databricks Sandbox, consulte Databricks Sandbox.

Requisitos​

  • Seu workspace atende aos pré-requisitos do Databricks Sandbox. Consulte Pré-requisitos.
  • Seu workspace cumpre os pré-requisitos do Artifact Registry, incluindo a ativação da prévia do Databricks Artifact Registry . Consulte Requisitos.
  • Você tem os privilégios USE CATALOG, USE SCHEMA e READ VOLUME no catálogo e esquema que contém a imagem. Consulte Conceder permissões.
  • A imagem usa glibc 2.25 e acima. Se a imagem usar uma base Ubuntu, use Ubuntu 18.04 e acima. Imagens que usam musl em vez de glibc, como Alpine Linux e imagens construídas sobre ele (por exemplo, python:<version>-alpine ou node:<version>-alpine), não são suportadas.

Enviar uma imagem e criar uma sandbox​

  1. Crie a imagem com Docker e envie-a para o Artifact Registry. Consulte Enviar uma imagem.

  2. Espere até que o status da aceleração da imagem seja SUCCESS. A aceleração da imagem é execução automaticamente após o envio e pode levar 15 minutos ou mais. Consulte Verificar status da aceleração da imagem.

  3. Crie a sandbox e defina image_uri como o nome do Unity Catalog da imagem, no formato catalog.schema.artifact:tag. Para pin uma versão exata, use um hash em vez de uma tag: catalog.schema.artifact@sha256:<digest>.

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

    Python
    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 home persistente e comportamento de parada e começar que qualquer outro sandbox.

Solução de problemas​

Se a solicitaçã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 da aceleração da imagem e tente novamente após atingir SUCCESS.
  • Not authorized to access image <uri>: Você não tem os privilégios necessários na imagem. Peça ao proprietário do catálogo ou esquema para concedê-los.

Limitações​

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

Mais recursos​