Skip to content

Session

角色

Session 是平台管理的执行租约对象,用于表达某个 RunSpace 的占用、保活、续期与释放生命周期,而非表示 runtime 的网络连接。

v1 将 Session 作为公开可查询资源,使运行事实可以被读面、审计和调试工具直接消费。

核心字段

  • sessionId
  • orgId
  • runId
  • attemptId
  • providerType
  • runEnv
  • runSpaceId
  • status
  • leaseExpiresAt
  • createdAt
  • updatedAt
  • metadata

与 RunSpace 的关系

  • RunSpace
    • provider 侧实际承载执行的运行空间标识,例如 sandbox workspace、容器实例、函数调用空间或 worker 槽位。
  • Session
    • 平台对某个 RunSpace 的当前租约与归属事实。
  • 一个 Session MUST 绑定且只绑定一个 runSpaceId
  • 同一 runSpaceId 在同一时刻 MUST NOT 归属多个未终止 Session
  • sandboxlocalfaasworkerMUST 产出 Session;差异只体现在 session 生命周期长短,而不体现在对象是否存在

与 RuntimeConnection 的关系

  • RuntimeConnection 是 runtime 与平台之间的 attach / heartbeat / recover / KV / secret / config 连接上下文
  • 一个 Session 在时间上 MAY 对应多个 RuntimeConnection,例如断线重连后的新连接
  • RuntimeConnection MUST NOT 重新定义 Session 身份;它只是在既有 Session 上承载控制流与数据流

标准状态

  • prepared
  • allocated
  • starting
  • running
  • releasing
  • released
  • failed
  • orphaned

规范要求

  • orchestrator MUST 只依赖统一 session 能力,不依赖 provider 私有状态名
  • session MUST 能表达 TTL 与保活结果
  • 已释放 session MUST NOT 再接收新的任务输入
  • session MUST 作为 provider 生命周期的 canonical 资源对象存在,即使它只是某个 attempt 作用域内的短租约
  • 读面 SHOULD 允许按 run、attempt、runSpace 和 id 查询 Session

白皮书与规范内容以仓库真源为准。