把应用的流量切到某个已就绪的版本
如果节点上有该版本的模板,从调用返回那一刻起流量就切到该版本,不需要构建:在流量切换之前,持有模板的节点会收到该版本的通知,流量离开的那个版本随后从这些节点上撤下。可以切到更早的版本,也可以切到更新的版本。正在进行的部署会结束:其版本就绪后也不承接流量。
如果没有节点有该版本的模板(应用有了更新的、可回退的版本后,它已从节点上撤下:见该版本的 collected_at),就像部署时那样先重新构建该版本:使用它首次部署时解析到的镜像,以及项目当前的机密。调用立即返回 202;版本为 building,应用正在部署它 (deploying),流量在所有节点都有模板之前保持不动;如果版本无法重新构建,流量就一直不动:此时版本变为 failed 并附带原因 (app.deploy_failed),可以再次请求回滚到它。GET /v1/apps/{app}/versions/{version}?wait_seconds= 可以像等待部署一样等待它,app.deployed 会告诉你流量何时切换完成。所需权限范围:write。
https://api.glac.ai/v1/apps/{app}/rollback授权
路径参数
请求头参数
请求体JSON必填
Returns
200
应用,current_version 为指定的版本,deploying 为 null。
- managed_byobject | nullrequired
唯一能修改它的东西(如果有的话)。
object为database:它所属的数据库(id,见/v1/databases);其他任何会修改它的调用都会被拒绝,返回 409managed_by_database。object为sandboxes(id为 null):属于沙箱产品,由项目的沙箱创建请求 (POST /v1/sandboxes) 创建:项目的默认沙箱应用sbx-sandbox(其image为 null:每个沙箱都从其所在节点的基础模板创建,直到项目为它指定一个镜像:只带image的PATCH,用该镜像创建一个新版本,此后不指定镜像的创建请求都从这个版本创建),或者某个创建请求指定的镜像的应用(image,与创建请求指定的一致;sbx-<the image's name>-<12 hex digits>,一个版本)。版本创建即就绪,应用的实例就是项目的沙箱;除了读取它及其版本、为默认沙箱应用指定镜像和删除它(其各版本的模板随之删除;下一个指定该镜像或不指定镜像的创建请求会重新创建它)之外,对它的任何调用都会被拒绝,返回 409managed_by_sandboxes。null:不受任何东西管理。object为installation:它所属的托管应用安装(id,见/v1/installations),只有该安装能修改它:其他任何会修改它的调用都会被拒绝,返回 409managed_by_installation。 - checkpointrequired
键控实例运行期间的检查点:每隔
every_seconds秒(默认 10,取值 1 到 600),把实例在某一时刻的内存和磁盘送到其节点的对象存储;节点的宿主机丢失时,实例会在另一个节点上从最新的检查点连同进程一起被接管,最多丢失此后做的事(休眠的实例从休眠状态接管,不会丢失任何东西)。每次节点会把它暂停几毫秒;发送的是自上一个检查点以来写入的内容,经过压缩;写入速度超过节点检查点链路承载能力的实例会落后,而不是把链路占满(实例的checkpoint:last_at、behind_seconds、bytes_per_second、stored_bytes)。对象存储为实例最新检查点保存的数据,在实例运行期间按休眠状态 (state) 计费;发送的数据不计费。立即生效,不产生新版本:现有的实例会立即启用,之后创建的实例创建时就带有它。不适用于有状态服务的实例:其存储卷在对象存储中没有副本。实例的云盘(包括它自己的key_drives)会与磁盘在同一时刻固定下来,接管时恢复到那一刻的状态;挂载了非云盘存储卷的实例不会创建检查点,其checkpoint.error会说明这一点。null:不启用(默认)。
202
由于没有节点有其模板,正在先重新构建该版本:应用,deploying 为指定的版本,current_version 保持原样。
- managed_byobject | nullrequired
唯一能修改它的东西(如果有的话)。
object为database:它所属的数据库(id,见/v1/databases);其他任何会修改它的调用都会被拒绝,返回 409managed_by_database。object为sandboxes(id为 null):属于沙箱产品,由项目的沙箱创建请求 (POST /v1/sandboxes) 创建:项目的默认沙箱应用sbx-sandbox(其image为 null:每个沙箱都从其所在节点的基础模板创建,直到项目为它指定一个镜像:只带image的PATCH,用该镜像创建一个新版本,此后不指定镜像的创建请求都从这个版本创建),或者某个创建请求指定的镜像的应用(image,与创建请求指定的一致;sbx-<the image's name>-<12 hex digits>,一个版本)。版本创建即就绪,应用的实例就是项目的沙箱;除了读取它及其版本、为默认沙箱应用指定镜像和删除它(其各版本的模板随之删除;下一个指定该镜像或不指定镜像的创建请求会重新创建它)之外,对它的任何调用都会被拒绝,返回 409managed_by_sandboxes。null:不受任何东西管理。object为installation:它所属的托管应用安装(id,见/v1/installations),只有该安装能修改它:其他任何会修改它的调用都会被拒绝,返回 409managed_by_installation。 - checkpointrequired
键控实例运行期间的检查点:每隔
every_seconds秒(默认 10,取值 1 到 600),把实例在某一时刻的内存和磁盘送到其节点的对象存储;节点的宿主机丢失时,实例会在另一个节点上从最新的检查点连同进程一起被接管,最多丢失此后做的事(休眠的实例从休眠状态接管,不会丢失任何东西)。每次节点会把它暂停几毫秒;发送的是自上一个检查点以来写入的内容,经过压缩;写入速度超过节点检查点链路承载能力的实例会落后,而不是把链路占满(实例的checkpoint:last_at、behind_seconds、bytes_per_second、stored_bytes)。对象存储为实例最新检查点保存的数据,在实例运行期间按休眠状态 (state) 计费;发送的数据不计费。立即生效,不产生新版本:现有的实例会立即启用,之后创建的实例创建时就带有它。不适用于有状态服务的实例:其存储卷在对象存储中没有副本。实例的云盘(包括它自己的key_drives)会与磁盘在同一时刻固定下来,接管时恢复到那一刻的状态;挂载了非云盘存储卷的实例不会创建检查点,其checkpoint.error会说明这一点。null:不启用(默认)。