Esta página demonstra como gerenciar o ciclo de vida dos ambientes de sandbox usando o SDK do Python. É possível listar as sandboxes atuais, conferir os detalhes delas, pausar e retomar ou excluir quando não forem mais necessárias.
Antes de começar
Para gerenciar sandboxes, você precisa das seguintes funções no seu projeto:
- Usuário da Agent Platform (
roles/aiplatform.user)
Gerenciar sandboxes
É possível listar, conferir detalhes, pausar, retomar e excluir ambientes de sandbox associados a uma instância da Agent Platform. A pausa e a retomada permitem desprogramar recursos de computação para sandboxes inativas e reativá-los mais tarde sem perder o estado do sistema de arquivos ou a identidade da conexão. Para mudar a configuração de uma sandbox, é necessário excluí-la e criar uma nova.
Listar sandboxes
Para listar todas as sandboxes associadas a uma instância da Agent Platform:
import agentplatform
client = agentplatform.Client(project='PROJECT_ID', location='LOCATION')
instance_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID'
sandboxes = client.sandboxes.list(name=instance_name)
for sandbox in sandboxes:
print(sandbox.name)
Substitua:
PROJECT_ID: o ID do projeto do Google Cloud .LOCATION: A Google Cloud região da instância da Agent Platform. Consulte Regiões com suporte.INSTANCE_ID: o ID da instância da Agent Platform.
Conferir detalhes da sandbox
Para conferir a configuração e o status de uma sandbox específica:
sandbox_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'
sandbox = client.sandboxes.get(name=sandbox_name)
print(sandbox)
Substitua:
PROJECT_ID: o ID do projeto do Google Cloud .LOCATION: A Google Cloud região da instância da Agent Platform. Consulte Regiões com suporte.INSTANCE_ID: o ID da instância da Agent Platform que contém a sandbox.SANDBOX_ID: o ID da sandbox.
A saída inclui detalhes como o horário de criação, o estado (por exemplo, STATE_RUNNING) e a especificação da sandbox.
Pausar uma sandbox
A pausa de uma sandbox libera os recursos de computação dela, preservando o estado do disco e os metadados de conexão. As sandboxes pausadas custam muito menos do que as em execução e podem ser retomadas em segundos. Use a pausa quando uma sandbox estiver inativa por um período prolongado, mas você quiser preservar o estado da sessão e a identidade da conexão para uso posterior.
Sandboxes pausadas:
- Mantêm o ID da sandbox, os metadados de conexão e qualquer endpoint do Private Service Connect.
- Mantêm todo o estado do sistema de arquivos no contêiner no momento da pausa.
- Transição para
STATE_PAUSED. As solicitações para o endpoint do plano de dados retornam erros até que você retome.
import agentplatform
client = agentplatform.Client(project='PROJECT_ID', location='LOCATION')
sandbox_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'
pause_operation = client.sandboxes.pause(
name=sandbox_name,
config={
"wait_for_completion": True, # Optional. Blocks until the sandbox reaches STATE_PAUSED.
},
)
paused_sandbox = pause_operation.response
print(f"Sandbox {paused_sandbox.name} state: {paused_sandbox.state}") # STATE_PAUSED
Substitua:
PROJECT_ID: o ID do projeto do Google Cloud .LOCATION: A Google Cloud região da instância da Agent Platform. Consulte Regiões com suporte.INSTANCE_ID: o ID da instância da Agent Platform que contém a sandbox.SANDBOX_ID: o ID da sandbox.
Retomar uma sandbox
A retomada de uma sandbox pausada reativa a computação dela. A sandbox mantém o mesmo ID, endpoint de conexão (incluindo qualquer anexo de serviço do Private Service Connect) e estado do sistema de arquivos que tinha no momento da pausa. As solicitações do plano de dados podem ser feitas novamente para a sandbox assim que a operação de retomada for concluída.
sandbox_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'
resume_operation = client.sandboxes.resume(
name=sandbox_name,
config={
"wait_for_completion": True, # Optional. Blocks until the sandbox reaches STATE_RUNNING.
},
)
resumed_sandbox = resume_operation.response
print(f"Sandbox {resumed_sandbox.name} state: {resumed_sandbox.state}") # STATE_RUNNING
Substitua:
PROJECT_ID: o ID do projeto do Google Cloud .LOCATION: A Google Cloud região da instância da Agent Platform. Consulte Regiões com suporte.INSTANCE_ID: o ID da instância da Agent Platform que contém a sandbox.SANDBOX_ID: o ID da sandbox pausada.
Excluir uma sandbox
Para excluir explicitamente um ambiente de sandbox e liberar recursos:
client.sandboxes.delete(name=sandbox_name)
print("Sandbox deleted.")