Administra instantáneas

Las instantáneas de sandbox en Gemini Enterprise Agent Platform te permiten guardar el estado actual de un sandbox y restablecerlo más adelante. Esto es útil para tareas de administración del ciclo de vida, como restablecer un estado correcto conocido o explorar ramas de variación.

Las instantáneas proporcionan varios beneficios para administrar los flujos de trabajo de tu agente:

  • Persistencia de estado: Guarda el estado exacto del sandbox, incluidas las bibliotecas instaladas, los cambios en el sistema de archivos y el estado de la memoria.
  • Eficiencia: En lugar de volver a crear un entorno complejo desde cero, puedes restablecerlo a partir de una instantánea en segundos.
  • Creación de puntos de control: Crea puntos de control durante una tarea de agente de larga ejecución para permitir la recuperación si algo sale mal.
  • Bifurcación: Crea varios sandboxes a partir de la misma instantánea para explorar diferentes rutas o probar variaciones.

Limitaciones

No puedes restablecer una instantánea de sandbox en un entorno de sandbox nuevo si se cumple alguna de las siguientes condiciones:

  • El sandbox nuevo usa una arquitectura de servidor diferente (por ejemplo, amd64 en comparación con arm64).
  • El sandbox nuevo usa una versión de tiempo de ejecución de sandbox diferente (por ejemplo, después de una actualización del clúster de GKE).
  • El sandbox nuevo usa un URI de imagen de contenedor diferente.

Retención

Cuando creas una instantánea, se conserva durante el período especificado en la propiedad ttl. Para borrar una instantánea antes de que venza el TTL, consulta Borra una instantánea.

Crea una instantánea

Para crear una instantánea de un sandbox, usa el SDK de 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}")

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del Cloud de Confiance proyecto de.
  • LOCATION: La Cloud de Confiance región de tu recurso. Consulta Regiones admitidas.
  • INSTANCE_ID: Es el ID de la instancia de Agent Platform.
  • SANDBOX_ID: Es el ID del sandbox existente para el que se creará una instantánea.
  • DISPLAY_NAME: Es un nombre visible descriptivo para tu instantánea.

Restablece a partir de una instantánea

Puedes restablecer un estado de sandbox haciendo referencia a una instantánea guardada cuando creas un entorno de sandbox nuevo:

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,
    }
)

Enumera instantáneas

Para enumerar todas las instantáneas de sandbox asociadas con una instancia de Agent Platform, haz lo siguiente:

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

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

Consulta los detalles de la instantánea

Para ver la configuración de una instantánea de sandbox específica, haz lo siguiente:

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

Borra una instantánea

Para borrar explícitamente una instantánea de sandbox cuando ya no la necesites, haz lo siguiente:

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