Crea un sandbox da un'immagine personalizzata

Importante

Questa funzionalità è in versione beta. Per abilitare questa anteprima di funzionalità nello spazio di lavoro, opta per l'impostazione Sandbox Databricks nella pagina Anteprime dello spazio di lavoro. Vedere Gestire le anteprime di Azure Databricks.

Puoi creare un sandbox dalla tua immagine container archiviata in Artifact Registry. Artefact Registry memorizza immagini container come asset governati nel Catalogo Unity, quindi controlli l'accesso con i privilegi del Catalogo Unity. Il sandbox inizia con i pacchetti, gli strumenti e la configurazione dell'immagine già installati, quindi non è necessario installare dipendenze ogni volta che crei un sandbox.

Per una panoramica di Databricks Sandbox, vedi Databricks Sandbox.

Requirements

  • Il tuo spazio di lavoro soddisfa i prerequisiti del Sandbox Databricks. Vedere Prerequisiti.
  • Il tuo spazio di lavoro soddisfa i prerequisiti di Artifact Registry, inclusa l'abilitazione dell'anteprima Databricks Artifact Registry. Vedere Requisiti.
  • Hai i privilegi USE CATALOG, USE SCHEMA e READ VOLUME sul catalogo e sullo schema in cui si trova l'immagine. Vedi Concedere permessi.
  • L'immagine utilizza glibc 2.25 o versioni successive. Se l'immagine utilizza una base Ubuntu, usa Ubuntu 18.04 e versioni successive. Le immagini che usano musl invece di glibc, come Alpine Linux e immagini costruite sopra di esso (ad esempio, python:<version>-alpine o node:<version>-alpine), non sono supportate.

Carica un'immagine e crea un sandbox

  1. Compila l'immagine con Docker e spingila in Artifact Registry. Vedi Esegui il push di un'immagine.

  2. Aspetta che lo stato di accelerazione dell'immagine sia SUCCESS. Image acceleration si attiva automaticamente dopo aver eseguito il push e può richiedere 15 minuti o più. Vedi Verifica lo stato dell'accelerazione dell'immagine.

  3. Crea il sandbox e imposta image_uri sul nome del Catalogo Unity dell'immagine, nel formato catalog.schema.artifact:tag. Per fissare una versione esatta, usa un digest invece di un tag: catalog.schema.artifact@sha256:<digest>.

    Ad esempio, per creare un sandbox dall'immagine main.agents.agent-base:v1 , esegui quanto segue:

    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"
    

Un sandbox creato da un'immagine personalizzata mantiene la stessa directory home persistente e lo stesso comportamento di arresto e avvio di qualsiasi altro sandbox.

Troubleshooting

Se la richiesta di creazione fallisce, controlla il messaggio di errore:

  • Image <uri> is not ready for use: L'accelerazione dell'immagine non è finita. Controlla lo stato di accelerazione dell'immagine e riprova dopo che l'immagine ha raggiunto SUCCESS.
  • Not authorized to access image <uri>: Non hai i privilegi necessari sull'immagine. Chiedi al proprietario del catalogo o dello schema di concederli.

Limitazioni

  • Le immagini personalizzate devono essere archiviate in Artifact Registry. Non puoi creare un sandbox da un'immagine in un registro esterno, e Azure Databricks non genera immagini per te.
  • I sandbox creati da un'immagine personalizzata possono impiegare più tempo ad avviarsi rispetto ai sandbox che utilizzano l'ambiente predefinito.

Risorse aggiuntive