Aller au contenu principal

Créer un sandbox à partir d'une image personnalisée

info

Bêta

Cette fonctionnalité est en Bêta. Pour activer cet aperçu de fonctionnalité dans le workspace, souscrivez au paramètre Databricks Sandbox sur la page Aperçus du workspace. Consultez Gérer les aperçus Databricks.

Vous pouvez créer un sandbox à partir de votre propre image de conteneur stockée dans Artifact Registry. Artifact Registry stocke les images de conteneurs en tant qu’assets régis dans Unity Catalog. Vous contrôlez ainsi l’accès à ces images avec des privilèges Unity Catalog. Le sandbox start avec les packages, les outils et la configuration de l'image déjà installés, vous n'avez donc pas besoin d'installer les dépendances à chaque fois que vous créez un sandbox.

Pour obtenir un aperçu de Databricks Sandbox, consultez Databricks Sandbox.

Conditions requises​

  • Votre workspace répond aux prérequis de Databricks Sandbox. Consultez Prérequis.
  • Votre workspace répond aux prérequis d'Artifact Registry, y compris l'activation de la préversion de Databricks Artifact Registry . Voir Exigences.
  • Vous disposez des privilèges USE CATALOG, USE SCHEMA et READ VOLUME sur le catalogue et le schéma contenant l'image. Voir Accorder des autorisations.
  • L'image utilise glibc 2.25 et les versions ultérieures. Si l'image utilise une base Ubuntu, utilisez Ubuntu 18.04 et les versions ultérieures. Les images qui utilisent musl au lieu de glibc, comme Alpine Linux et les images basées sur celle-ci (par exemple, python:<version>-alpine ou node:<version>-alpine), ne sont pas prises en charge.

Envoyer une image et créer un sandbox​

  1. Créez l'image avec Docker et envoyez-la vers Artifact Registry. Voir Envoyer une image.

  2. Attendez que le statut de l'accélération de l'image soit SUCCESS. L'accélération de l'image s'exécute automatiquement après votre push et peut prendre 15 minutes ou plus. Consultez Vérifier le statut de l’accélération de l’image.

  3. Créez le sandbox et définissez image_uri sur le nom Unity Catalog de l'image, au format catalog.schema.artifact:tag. Pour pin une version exacte, utilisez un résumé plutôt qu'un tag : catalog.schema.artifact@sha256:<digest>.

    Par exemple, pour créer un sandbox à partir de l'image main.agents.agent-base:v1, exécutez ce qui suit :

    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"

Un sandbox créé à partir d'une image personnalisée conserve le même répertoire personnel persistant et le même comportement d'arrêt et de start que tout autre sandbox.

Dépannage​

Si la demande de création échoue, vérifiez le message d'erreur :

  • Image <uri> is not ready for use: L'accélération de l'image n'est pas terminée. Vérifiez l’état de l’accélération de l’image et réessayez une fois que celle-ci atteint SUCCESS.
  • Not authorized to access image <uri>: vous n'avez pas les privilèges requis sur l'image. Veuillez demander au propriétaire du catalogue ou du schéma de vous les accorder.

Limitations​

  • Les images personnalisées doivent être stockées dans Artifact Registry. Vous ne pouvez pas créer de sandbox à partir d'une image dans un registre externe, et Databricks ne crée pas d'images pour vous.
  • Les sandboxes créés à partir d'une image personnalisée peuvent prendre plus de temps à start que les sandboxes qui utilisent l'environnement default.

Ressources supplémentaires​