Gerenciar sandboxes

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.")