Mit Sandbox-Snapshots in der Gemini Enterprise Agent Platform können Sie den aktuellen Zustand einer Sandbox speichern und später wiederherstellen. Das ist für Aufgaben im Lebenszyklusmanagement nützlich, z. B. um einen bekannten guten Zustand wiederherzustellen oder verschiedene Zweige zu untersuchen.
Snapshots bieten mehrere Vorteile für die Verwaltung Ihrer Agent-Workflows:
- Zustandspersistenz: Speichern Sie den genauen Zustand der Sandbox, einschließlich installierter Bibliotheken, Änderungen am Dateisystem und des Speicherzustands.
- Effizienz: Anstatt eine komplexe Umgebung von Grund auf neu zu erstellen, können Sie sie in Sekundenschnelle aus einem Snapshot wiederherstellen.
- Prüfpunkte: Erstellen Sie während einer lang andauernden Agent-Aufgabe Prüfpunkte, um eine Wiederherstellung zu ermöglichen, falls etwas schiefgeht.
- Verzweigung: Erstellen Sie mehrere Sandboxes aus demselben Snapshot, um verschiedene Pfade zu untersuchen oder Variationen zu testen.
Beschränkungen
Sie können einen Sandbox-Snapshot nicht in einer neuen Sandbox-Umgebung wiederherstellen, wenn eine der folgenden Bedingungen zutrifft:
- Die neue Sandbox verwendet eine andere Serverarchitektur (z. B.
amd64im Vergleich zuarm64). - Die neue Sandbox verwendet eine andere Sandbox-Laufzeitversion (z. B. nach einem GKE-Cluster-Upgrade).
- Die neue Sandbox verwendet einen anderen Container-Image-URI.
Kundenbindung
Wenn Sie einen Snapshot erstellen, wird er für die in der Eigenschaft ttl angegebene Dauer aufbewahrt. Informationen zum Löschen eines Snapshots vor Ablauf der TTL finden Sie unter
Snapshot löschen.
Snapshot erstellen
So erstellen Sie einen Snapshot einer Sandbox mit dem Python SDK:
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}")
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Cloud de Confiance Projekt-IDLOCATION: Die Cloud de Confiance Region Ihrer Ressource Siehe Unterstützte Regionen.INSTANCE_ID: Die Instanz-ID der Agent PlatformSANDBOX_ID: Die ID der vorhandenen Sandbox, für die ein Snapshot erstellt werden sollDISPLAY_NAME: Ein beschreibender Anzeigename für Ihren Snapshot
Aus einem Snapshot wiederherstellen
Sie können einen Sandbox-Zustand wiederherstellen, indem Sie beim Erstellen einer neuen Sandbox-Umgebung auf einen gespeicherten Snapshot verweisen:
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,
}
)
Snapshots auflisten
So listen Sie alle Sandbox-Snapshots auf, die mit einer Agent Platform-Instanz verknüpft sind:
snapshots_response = client.sandboxes.snapshots.list(name=agent_instance_name)
for snapshot in snapshots_response.sandbox_environment_snapshots:
print(snapshot.name)
Snapshot-Details ansehen
So sehen Sie die Konfiguration eines bestimmten Sandbox-Snapshots:
snapshot = client.sandboxes.snapshots.get(name=snapshot_name)
print(snapshot)
Snapshot löschen
So löschen Sie einen Sandbox-Snapshot explizit, wenn er nicht mehr benötigt wird:
client.sandboxes.snapshots.delete(name=snapshot_name)
print("Snapshot deleted.")