本页面演示了如何使用 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.")