主题
Session
角色
Session 是平台管理的执行租约对象,用于表达某个 RunSpace 的占用、保活、续期与释放生命周期,而非表示 runtime 的网络连接。
v1 将 Session 作为公开可查询资源,使运行事实可以被读面、审计和调试工具直接消费。
核心字段
sessionIdorgIdrunIdattemptIdproviderTyperunEnvrunSpaceIdstatusleaseExpiresAtcreatedAtupdatedAtmetadata
与 RunSpace 的关系
RunSpace- provider 侧实际承载执行的运行空间标识,例如 sandbox workspace、容器实例、函数调用空间或 worker 槽位。
Session- 平台对某个
RunSpace的当前租约与归属事实。
- 平台对某个
- 一个
SessionMUST绑定且只绑定一个runSpaceId - 同一
runSpaceId在同一时刻MUST NOT归属多个未终止Session sandbox、local、faas、worker都MUST产出Session;差异只体现在 session 生命周期长短,而不体现在对象是否存在
与 RuntimeConnection 的关系
RuntimeConnection是 runtime 与平台之间的 attach / heartbeat / recover / KV / secret / config 连接上下文- 一个
Session在时间上MAY对应多个RuntimeConnection,例如断线重连后的新连接 RuntimeConnectionMUST NOT重新定义Session身份;它只是在既有Session上承载控制流与数据流
标准状态
preparedallocatedstartingrunningreleasingreleasedfailedorphaned
规范要求
- orchestrator
MUST只依赖统一 session 能力,不依赖 provider 私有状态名 - session
MUST能表达 TTL 与保活结果 - 已释放 session
MUST NOT再接收新的任务输入 - session
MUST作为 provider 生命周期的 canonical 资源对象存在,即使它只是某个 attempt 作用域内的短租约 - 读面
SHOULD允许按 run、attempt、runSpace 和 id 查询 Session