签发单个沙箱的令牌
一种短期凭据,供不应持有项目密钥的浏览器或程序使用。它用沙箱自己的密钥签名,在持有该沙箱的任何节点上都有效:沙箱迁到另一个节点时,密钥也随之迁移。令牌不会被保存,也无法列出:POST /v1/sandboxes/{id}/tokens/revoke 可以只撤销这一个(按 token,或按 token_id:即本调用返回的 id),也可以撤销该沙箱迄今签发的所有令牌。不会唤醒任何东西。
所需权限范围:write。
https://api.glac.ai/v1/sandboxes/{id}/tokens授权
路径参数
请求头参数
请求体JSON可选
- e2boptionalboolean
true:沙箱供 E2B SDK 使用的唯一令牌(控制平面的 E2B 兼容层把它作为
envdAccessToken发出),不能同时给出scopes或expires_in_seconds(400invalid_field,param为e2b):权限范围为url,每次请求得到的都是同一个令牌,因为 E2B 的令牌在沙箱整个生命周期内只有一个;在沙箱的令牌被撤销之前一直有效(其expires_at为 2100-01-01)。预览监听器会校验 E2B SDK 用它签名的文件地址(download_url、upload_url:x-preview-ingress)。撤销沙箱的全部令牌后,此后得到的会是另一个令牌。default: false
Returns
201
令牌。
400
请求不符合本调用的要求。invalid_json:请求体不是 JSON 对象;unknown_field:请求体中有本调用不接受的字段;unknown_parameter:查询中有本调用不接受的参数;invalid_field:某个字段或查询参数类型错误或超出范围;invalid_idempotency_key:Idempotency-Key 为空或超过 255 个字符。
401
missing_api_key, invalid_api_key, expired_api_key, invalid_token.
403
凭据无权执行此操作。needs_api_key:沙箱令牌不能执行此操作。
404
请求中指定的对象不存在。sandbox_not_found:沙箱不存在。
409
某个对象的状态不允许此操作。idempotency_key_reused:该键已与另一个请求体一起使用过;idempotency_in_progress:使用该键的第一个请求仍在执行。
default
其他任何失败,格式相同。internal (500):节点出错;错误信息不会多说,节点日志中以请求的 id 记录了原因。unavailable(503,可重试):no_capacity,节点的网络槽位都已占用;memory_full,调用需要启动的虚拟机(创建、唤醒、从磁盘启动、恢复、回滚、构建)在宿主机内存中放不下(还要算上已承诺给其上运行的虚拟机的内存),也没有暂停或空闲的虚拟机可以让其休眠来腾出空间(节点的 memory);drive_full,调用需要构建模板,而节点的数据盘没有空间(节点的 drive);unavailable,节点正在关闭、沙箱 10 分钟后仍处于 starting、沙箱没有响应,或者沙箱正在迁到本节点(带 Retry-After: 1);fenced,节点的租约隔离了该沙箱 (Node.lease)。moved (409):沙箱已迁到另一个节点,由 to 指明。