管理沙盒

本页面演示了如何使用 Python SDK 管理沙盒环境的生命周期。您可以列出现有沙盒、查看其详细信息、暂停和恢复沙盒,或在不再需要沙盒时将其删除。

准备工作

如需管理沙盒,您需要在项目中拥有以下角色:

  • Agent Platform User (roles/aiplatform.user)

管理沙盒

您可以列出、查看详细信息、暂停、恢复和删除与 Agent Platform 实例关联的沙盒环境。借助暂停和恢复功能,您可以取消闲置沙盒的计算资源,并在稍后恢复这些资源,而不会丢失文件系统状态或连接身份。如需更改现有沙盒的配置,您必须将其删除并创建一个新沙盒。

列出沙盒

如需列出与 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)

替换以下内容:

  • PROJECT_ID:您的 Cloud de Confiance 项目 ID。
  • LOCATION:Agent Platform 实例的 Cloud de Confiance 区域。 请参阅支持的区域。
  • INSTANCE_ID:Agent Platform 实例 ID。

查看沙盒详细信息

如需查看特定沙盒的配置和状态,请执行以下操作:

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

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

替换以下内容:

  • PROJECT_ID:您的 Cloud de Confiance 项目 ID。
  • LOCATION:Agent Platform 实例的 Cloud de Confiance 区域。 请参阅支持的区域。
  • INSTANCE_ID:包含沙盒的 Agent Platform 实例 ID。
  • SANDBOX_ID:现有沙盒 ID。

输出内容包括创建时间、状态(例如 STATE_RUNNING)和沙盒规范等详细信息。

暂停沙盒

暂停沙盒会释放其计算资源,同时保留磁盘状态和连接元数据。暂停的沙盒的费用远低于运行中的沙盒,并且可以在几秒钟内恢复。如果沙盒长时间处于空闲状态,但您希望保留会话状态和连接身份以供日后使用,请使用暂停功能。

暂停的沙盒:

  • 保留其沙盒 ID、连接元数据和任何 Private Service Connect 端点。
  • 保留暂停时所有容器内文件系统状态。
  • 转换为 STATE_PAUSED。在您恢复之前,对其数据平面端点的请求会返回错误。
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

替换以下内容:

  • PROJECT_ID:您的 Cloud de Confiance 项目 ID。
  • LOCATION:Agent Platform 实例的 Cloud de Confiance 区域。 请参阅支持的区域。
  • INSTANCE_ID:包含沙盒的 Agent Platform 实例 ID。
  • SANDBOX_ID:现有沙盒 ID。

恢复沙盒

恢复已暂停的沙盒会使其计算资源恢复在线状态。沙盒会保留暂停时的相同 ID、连接端点(包括任何 Private Service Connect 服务连接)和文件系统状态。恢复操作完成后,您可以立即再次向沙盒发出数据平面请求。

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

替换以下内容:

  • PROJECT_ID:您的 Cloud de Confiance 项目 ID。
  • LOCATION:Agent Platform 实例的 Cloud de Confiance 区域。 请参阅支持的区域。
  • INSTANCE_ID:包含沙盒的 Agent Platform 实例 ID。
  • SANDBOX_ID:已暂停的沙盒 ID。

删除沙盒

如需明确删除沙盒环境并释放资源,请执行以下操作:

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