Gestisci sandbox

Questa pagina mostra come gestire il ciclo di vita degli ambienti sandbox utilizzando Python SDK. Puoi elencare le sandbox esistenti, visualizzarne i dettagli, metterle in pausa e riattivarle o eliminarle quando non sono più necessarie.

Prima di iniziare

Per gestire le sandbox, devi disporre dei seguenti ruoli nel tuo progetto:

  • Agent Platform User (roles/aiplatform.user)

Gestire le sandbox

Puoi elencare, visualizzare i dettagli, mettere in pausa, riattivare ed eliminare gli ambienti sandbox associati a un'istanza di Agent Platform. Le opzioni di pausa e riattivazione ti consentono di annullare la pianificazione delle risorse di calcolo per le sandbox inattive e di riportarle online in un secondo momento senza perdere lo stato del file system o l'identità della connessione. Per modificare la configurazione di una sandbox esistente, devi eliminarla e crearne una nuova.

Elencare le sandbox

Per elencare tutte le sandbox associate a un'istanza di 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)

Sostituisci quanto segue:

  • PROJECT_ID: l' Google Cloud ID progetto.
  • LOCATION: La Google Cloud regione dell'istanza di Agent Platform. Vedi Regioni supportate.
  • INSTANCE_ID: l'ID istanza di Agent Platform.

Visualizzare i dettagli della sandbox

Per visualizzare la configurazione e lo stato di una sandbox specifica:

sandbox_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'

sandbox = client.sandboxes.get(name=sandbox_name)
print(sandbox)

Sostituisci quanto segue:

  • PROJECT_ID: l' Google Cloud ID progetto.
  • LOCATION: La Google Cloud regione dell'istanza di Agent Platform. Vedi Regioni supportate.
  • INSTANCE_ID: l'ID istanza di Agent Platform che contiene la sandbox.
  • SANDBOX_ID: l'ID sandbox esistente.

L'output include dettagli come l'ora di creazione, lo stato (ad es. STATE_RUNNING) e la specifica della sandbox.

Mettere in pausa una sandbox

La messa in pausa di una sandbox rilascia le relative risorse di calcolo mantenendo lo stato del disco e i metadati di connessione. Le sandbox in pausa costano molto meno di quelle in esecuzione e possono essere riattivate in pochi secondi. Utilizza la pausa quando una sandbox è inattiva per un periodo prolungato, ma vuoi conservare lo stato della sessione e l'identità della connessione per un utilizzo successivo.

Le sandbox in pausa:

  • Mantengono l'ID sandbox, i metadati di connessione e qualsiasi endpoint Private Service Connect.
  • Mantengono tutto lo stato del file system nel container al momento della pausa.
  • Passano a STATE_PAUSED. Le richieste al relativo endpoint del piano dati restituiscono errori finché non riattivi la sandbox.
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

Sostituisci quanto segue:

  • PROJECT_ID: l' Google Cloud ID progetto.
  • LOCATION: La Google Cloud regione dell'istanza di Agent Platform. Vedi Regioni supportate.
  • INSTANCE_ID: l'ID istanza di Agent Platform che contiene la sandbox.
  • SANDBOX_ID: l'ID sandbox esistente.

Riattivare una sandbox

La riattivazione di una sandbox in pausa riporta online il relativo calcolo. La sandbox conserva lo stesso ID, l'endpoint di connessione (incluso qualsiasi collegamento al servizio Private Service Connect) e lo stato del file system che aveva al momento della pausa. Le richieste del piano dati possono essere nuovamente effettuate alla sandbox non appena l'operazione di riattivazione viene completata.

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

Sostituisci quanto segue:

  • PROJECT_ID: l' Google Cloud ID progetto.
  • LOCATION: La Google Cloud regione dell'istanza di Agent Platform. Vedi Regioni supportate.
  • INSTANCE_ID: l'ID istanza di Agent Platform che contiene la sandbox.
  • SANDBOX_ID: l'ID sandbox in pausa.

Eliminare una sandbox

Per eliminare esplicitamente un ambiente sandbox e liberare risorse:

client.sandboxes.delete(name=sandbox_name)
print("Sandbox deleted.")