Gli snapshot della sandbox in Gemini Enterprise Agent Platform ti consentono di salvare lo stato attuale di una sandbox e ripristinarlo in un secondo momento. Questo approccio è utile per le attività di gestione del ciclo di vita, ad esempio il ripristino di uno stato valido noto o l'esplorazione di rami di variazione.
Gli snapshot offrono diversi vantaggi per la gestione dei flussi di lavoro degli agenti:
- Persistenza dello stato: salva lo stato esatto della sandbox, incluse le librerie installate, le modifiche al file system e lo stato della memoria.
- Efficienza: anziché ricreare un ambiente complesso da zero, puoi ripristinarlo da uno snapshot in pochi secondi.
- Checkpointing: crea checkpoint durante un'attività dell'agente a esecuzione continua per consentire il ripristino in caso di problemi.
- Ramificazione: crea più sandbox dallo stesso snapshot per esplorare percorsi diversi o testare le variazioni.
Limitazioni
Non puoi ripristinare uno snapshot della sandbox in un nuovo ambiente sandbox se si verifica una delle seguenti condizioni:
- La nuova sandbox utilizza un'architettura server diversa (ad esempio,
amd64rispetto aarm64). - La nuova sandbox utilizza una versione di runtime della sandbox diversa (ad esempio, dopo un upgrade del cluster GKE).
- La nuova sandbox utilizza un URI immagine container diverso.
Conservazione
Quando crei uno snapshot, questo viene conservato per la durata specificata nella proprietà ttl. Per eliminare uno snapshot prima della scadenza del TTL, consulta
Eliminare uno snapshot.
Crea uno snapshot
Per creare uno snapshot di una sandbox, utilizza l'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}")
Sostituisci quanto segue:
PROJECT_ID: l' Cloud de Confiance ID progetto.LOCATION: La Cloud de Confiance regione della risorsa. Consulta Regioni supportate.INSTANCE_ID: l'ID istanza di Agent Platform.SANDBOX_ID: l'ID sandbox esistente per cui creare uno snapshot.DISPLAY_NAME: un nome visualizzato descrittivo per lo snapshot.
Esegui il ripristino da uno snapshot
Puoi ripristinare lo stato di una sandbox facendo riferimento a uno snapshot salvato quando crei un nuovo ambiente sandbox:
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,
}
)
Elenca gli snapshot
Per elencare tutti gli snapshot della sandbox associati a un'istanza di Agent Platform:
snapshots_response = client.sandboxes.snapshots.list(name=agent_instance_name)
for snapshot in snapshots_response.sandbox_environment_snapshots:
print(snapshot.name)
Visualizza i dettagli dello snapshot
Per visualizzare la configurazione di uno snapshot della sandbox specifico:
snapshot = client.sandboxes.snapshots.get(name=snapshot_name)
print(snapshot)
Elimina uno snapshot
Per eliminare esplicitamente uno snapshot della sandbox quando non è più necessario:
client.sandboxes.snapshots.delete(name=snapshot_name)
print("Snapshot deleted.")