Gérer les bacs à sable

Cette page explique comment gérer le cycle de vie de vos environnements de bac à sable à l'aide du SDK Python. Vous pouvez répertorier les bacs à sable existants, afficher leurs détails, les mettre en veille et les réactiver, ou les supprimer lorsqu'ils ne sont plus nécessaires.

Avant de commencer

Pour gérer les bacs à sable, vous devez disposer des rôles suivants dans votre projet :

  • Utilisateur Agent Platform (roles/aiplatform.user)

Gérer les bacs à sable

Vous pouvez répertorier, afficher les détails, mettre en veille, réactiver et supprimer les environnements de bac à sable associés à une instance Agent Platform. La mise en veille et la réactivation vous permettent de désactiver les ressources de calcul pour les bacs à sable inactifs et de les remettre en ligne ultérieurement sans perdre l'état du système de fichiers ni l'identité de connexion. Pour modifier la configuration d'un bac à sable existant, vous devez le supprimer et en créer un autre.

Répertorier les bacs à sable

Pour répertorier tous les bacs à sable associés à une instance Agent Platform :

import agentplatform

client = agentplatform.Client(project='PROJECT_ID', location='LOCATION')
instance_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID'

sandboxes = client.sandboxes.list(name=instance_name)

for sandbox in sandboxes:
    print(sandbox.name)

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre Google Cloud projet.
  • LOCATION : Google Cloud région de votre instance Agent Platform. Consultez les régions compatibles.
  • INSTANCE_ID : ID de l'instance Agent Platform.

Afficher les détails du bac à sable

Pour afficher la configuration et l'état d'un bac à sable spécifique :

sandbox_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'

sandbox = client.sandboxes.get(name=sandbox_name)
print(sandbox)

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre Google Cloud projet.
  • LOCATION : Google Cloud région de votre instance Agent Platform. Consultez les régions compatibles.
  • INSTANCE_ID : ID de l'instance Agent Platform contenant votre bac à sable.
  • SANDBOX_ID : ID du bac à sable existant.

Le résultat inclut des informations telles que l'heure de création, l'état (par exemple, STATE_RUNNING) et la spécification du bac à sable.

Mettre en veille un bac à sable

La mise en veille d'un bac à sable libère ses ressources de calcul tout en conservant l'état du disque et les métadonnées de connexion. Les bacs à sable mis en veille coûtent beaucoup moins cher que ceux en cours d'exécution et peuvent être réactivés en quelques secondes. Utilisez la mise en veille lorsqu'un bac à sable est inactif pendant une période prolongée, mais que vous souhaitez conserver l'état de la session et l'identité de connexion pour une utilisation ultérieure.

Les bacs à sable mis en veille :

  • conservent leur ID de bac à sable, leurs métadonnées de connexion et tout point de terminaison Private Service Connect ;
  • conservent l'état du système de fichiers dans le conteneur au moment de la mise en veille ;
  • passent à STATE_PAUSED. Les requêtes adressées à leur point de terminaison du plan de données renvoient des erreurs jusqu'à ce que vous les réactiviez.
import agentplatform

client = agentplatform.Client(project='PROJECT_ID', location='LOCATION')
sandbox_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'

pause_operation = client.sandboxes.pause(
    name=sandbox_name,
    config={
        "wait_for_completion": True,  # Optional. Blocks until the sandbox reaches STATE_PAUSED.
    },
)
paused_sandbox = pause_operation.response
print(f"Sandbox {paused_sandbox.name} state: {paused_sandbox.state}")  # STATE_PAUSED

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre Google Cloud projet.
  • LOCATION : Google Cloud région de votre instance Agent Platform. Consultez les régions compatibles.
  • INSTANCE_ID : ID de l'instance Agent Platform contenant votre bac à sable.
  • SANDBOX_ID : ID du bac à sable existant.

Réactiver un bac à sable

La réactivation d'un bac à sable mis en veille remet son calcul en ligne. Le bac à sable conserve le même ID, le même point de terminaison de connexion (y compris tout rattachement de service Private Service Connect) et le même état du système de fichiers qu'au moment de la mise en veille. Les requêtes du plan de données peuvent être à nouveau adressées au bac à sable dès que l'opération de réactivation est terminée.

sandbox_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'

resume_operation = client.sandboxes.resume(
    name=sandbox_name,
    config={
        "wait_for_completion": True,  # Optional. Blocks until the sandbox reaches STATE_RUNNING.
    },
)
resumed_sandbox = resume_operation.response
print(f"Sandbox {resumed_sandbox.name} state: {resumed_sandbox.state}")  # STATE_RUNNING

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre Google Cloud projet.
  • LOCATION : Google Cloud région de votre instance Agent Platform. Consultez les régions compatibles.
  • INSTANCE_ID : ID de l'instance Agent Platform contenant votre bac à sable.
  • SANDBOX_ID : ID du bac à sable mis en veille.

Supprimer un bac à sable

Pour supprimer explicitement un environnement de bac à sable et libérer des ressources :

client.sandboxes.delete(name=sandbox_name)
print("Sandbox deleted.")