Gérer les instantanés

Les instantanés de bac à sable dans Gemini Enterprise Agent Platform vous permettent d'enregistrer l'état actuel d'un bac à sable et de le restaurer ultérieurement. Cela est utile pour les tâches de gestion du cycle de vie, telles que la restauration d'un état de fonctionnement connu ou l'exploration de branches de variation.

Les instantanés offrent plusieurs avantages pour la gestion des workflows de vos agents :

  • Persistance de l'état : enregistrez l'état exact du bac à sable, y compris les bibliothèques installées, les modifications du système de fichiers et l'état de la mémoire.
  • Efficacité : au lieu de recréer un environnement complexe à partir de zéro, vous pouvez le restaurer à partir d'un instantané en quelques secondes.
  • Points de contrôle : créez des points de contrôle lors d’une tâche d’agent de longue durée pour permettre la récupération en cas de problème.
  • Ramification : créez plusieurs bacs à sable à partir du même instantané pour explorer différents chemins ou tester des variations.

Limites

Vous ne pouvez pas restaurer un instantané de bac à sable dans un nouvel environnement de bac à sable si l'une des conditions suivantes est remplie :

  • Le nouveau bac à sable utilise une architecture de serveur différente (par exemple, amd64 au lieu de arm64).
  • Le nouveau bac à sable utilise une version d'exécution de bac à sable différente (par exemple, après une mise à niveau du cluster GKE).
  • Le nouveau bac à sable utilise un URI d'image de conteneur différent.

Fidélisation

Lorsque vous créez un instantané, il est conservé pendant la durée spécifiée dans la propriété ttl. Pour supprimer un instantané avant l'expiration du TTL, consultez Supprimer un instantané.

Créer un instantané

Pour créer un instantané d'un bac à sable, utilisez le SDK Python :

import agentplatform

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

snapshot_operation = client.sandboxes.snapshots.create(
    source_sandbox_environment_name=sandbox_name,
    config={
        "display_name": "DISPLAY_NAME",
        "ttl": "3600s",
    }
)
print(f"Snapshot creation initiated: {snapshot_operation.name}")

Remplacez les éléments suivants :

  • PROJECT_ID: ID de votre Cloud de Confiance projet.
  • LOCATION : Cloud de Confiance région de votre ressource. Consultez les régions compatibles.
  • INSTANCE_ID : ID de l'instance Agent Platform.
  • SANDBOX_ID : ID du bac à sable existant pour lequel créer un instantané.
  • DISPLAY_NAME : nom à afficher descriptif pour votre instantané.

Effectuer une restauration à partir d'un instantané

Vous pouvez restaurer l'état d'un bac à sable en référençant un instantané enregistré lors de la création d'un nouvel environnement de bac à sable :

agent_instance_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID
snapshot_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'

# Restore from a snapshot
new_sandbox_operation = client.sandboxes.create(
    name=agent_instance_name,
    config={
        "display_name": "restored-sandbox",
        "sandbox_environment_snapshot": snapshot_name,
    }
)

Répertorier les instantanés

Pour répertorier tous les instantanés de bac à sable associés à une instance Agent Platform :

snapshots_response = client.sandboxes.snapshots.list(name=agent_instance_name)

for snapshot in snapshots_response.sandbox_environment_snapshots:
    print(snapshot.name)

Afficher les détails d'un instantané

Pour afficher la configuration d'un instantané de bac à sable spécifique :

snapshot = client.sandboxes.snapshots.get(name=snapshot_name)
print(snapshot)

Supprimer un instantané

Pour supprimer explicitement un instantané de bac à sable lorsqu'il n'est plus nécessaire :

client.sandboxes.snapshots.delete(name=snapshot_name)
print("Snapshot deleted.")