Snapshots verwalten

Mit Sandbox-Snapshots in der Gemini Enterprise Agent Platform können Sie den aktuellen Status 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 Agenten-Workflows:

  • Statuspersistenz: Speichern Sie den genauen Status der Sandbox, einschließlich installierter Bibliotheken, Änderungen am Dateisystem und des Speicherstatus.
  • 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 Agentenaufgabe 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 erfüllt ist:

  • Die neue Sandbox verwendet eine andere Serverarchitektur (z. B. amd64 im Vergleich zu arm64).
  • Die neue Sandbox verwendet eine andere Sandbox-Laufzeitversion (z. B. nach einem GKE-Cluster-Upgrade).
  • Die neue Sandbox verwendet einen anderen Container-Image-URI.

Snapshot erstellen

Verwenden Sie das Python SDK, um einen Snapshot einer Sandbox zu erstellen:

import vertexai

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

snapshot_operation = client.agent_engines.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 Google Cloud Projekt-ID
  • LOCATION: Die Google Cloud Region Ihrer Ressource Siehe Unterstützte Regionen.
  • INSTANCE_ID: Die Instanz-ID der Agent Platform
  • SANDBOX_ID: Die ID der vorhandenen Sandbox, für die ein Snapshot erstellt werden soll
  • DISPLAY_NAME: Ein beschreibender Anzeigename für Ihren Snapshot

Aus einem Snapshot wiederherstellen

Sie können einen Sandbox-Status 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.agent_engines.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.agent_engines.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.agent_engines.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.agent_engines.sandboxes.snapshots.delete(name=snapshot_name)
print("Snapshot deleted.")