Os snapshots do sandbox na Gemini Enterprise Agent Platform permitem salvar o estado atual de um sandbox e restaurá-lo mais tarde. Isso é útil para tarefas de gerenciamento do ciclo de vida, como restaurar um estado bom conhecido ou explorar ramificações de variação.
Os snapshots oferecem vários benefícios para gerenciar os fluxos de trabalho do agente:
- Persistência de estado: salve o estado exato do sandbox, incluindo bibliotecas instaladas, alterações no sistema de arquivos e estado da memória.
- Eficiência: em vez de recriar um ambiente complexo do zero, você pode restaurá-lo de um snapshot em segundos.
- Checkpoint: crie checkpoints durante uma tarefa de agente de longa duração para permitir a recuperação se algo der errado.
- Ramificação: crie vários sandboxes do mesmo snapshot para explorar caminhos diferentes ou testar variações.
Limitações
Não é possível restaurar um snapshot do sandbox em um novo ambiente de sandbox se alguma das condições a seguir for verdadeira:
- O novo sandbox usa uma arquitetura de servidor diferente (por exemplo,
amd64em vez dearm64). - O novo sandbox usa uma versão de ambiente de execução diferente (por exemplo, após um upgrade do cluster do GKE).
- O novo sandbox usa um URI de imagem de contêiner diferente.
Retenção
Quando você cria um snapshot, ele é retido pela duração especificada na propriedade ttl. Para excluir um snapshot antes que o TTL expire, consulte
Excluir um snapshot.
Criar um snapshot
Para criar um snapshot de um sandbox, use o SDK do 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}")
Substitua:
PROJECT_ID: o ID do projeto do Cloud de Confiance .LOCATION: a Cloud de Confiance região do recurso. Consulte Regiões com suporte.INSTANCE_ID: o ID da instância da Agent Platform.SANDBOX_ID: o ID do sandbox atual para criar um snapshot.DISPLAY_NAME: um nome de exibição descritivo para o snapshot.
Restaurar a partir de um snapshot
É possível restaurar um estado do sandbox referenciando um snapshot salvo ao criar um novo ambiente de 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,
}
)
Listar snapshots
Para listar todos os snapshots do sandbox associados a uma instância da Agent Platform:
snapshots_response = client.sandboxes.snapshots.list(name=agent_instance_name)
for snapshot in snapshots_response.sandbox_environment_snapshots:
print(snapshot.name)
Conferir detalhes do snapshot
Para conferir a configuração de um snapshot específico do sandbox:
snapshot = client.sandboxes.snapshots.get(name=snapshot_name)
print(snapshot)
Excluir um snapshot
Para excluir explicitamente um snapshot do sandbox quando ele não for mais necessário:
client.sandboxes.snapshots.delete(name=snapshot_name)
print("Snapshot deleted.")