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,
amd64au lieu dearm64). - 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.")