更新时间:2024-12-12 GMT+08:00

继续回滚资源栈

功能介绍

继续回滚资源栈(ContinueRollbackStack)

此API用于继续回滚一个已有的资源栈

如果资源栈开启了自动回滚,在部署失败的时候则会自动回滚。但是自动回滚依然有可能失败,用户可以根据错误信息修复后,调用ContinueRollbackStack触发继续回滚,即重试回滚

  • 如果资源栈当前可以回滚,即处于ROLLBACK_FAILED,则返回202与对应生成的deploymentId,否则将不允许回滚并返回响应的错误码
  • 继续回滚也有可能会回滚失败。如果失败,用户可以从ListStackEvents获取对应的log,解决后可再次调用ContinueRollbackStack去继续触发回滚

URI

POST /v1/{project_id}/stacks/{stack_name}/rollbacks

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,可以从调用API处获取,也可以从控制台获取。

项目ID获取方式

最小长度:3

最大长度:64

stack_name

String

资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。

最小长度:1

最大长度:128

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Client-Request-Id

String

用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID

最小长度:36

最大长度:128

表3 请求Body参数

参数

是否必选

参数类型

描述

stack_id

String

资源栈(stack)的唯一Id。

此Id由资源编排服务在生成资源栈的时候生成,为UUID。

由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。

对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。

资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400

最小长度:36

最大长度:36

响应参数

状态码: 202

表4 响应Body参数

参数

参数类型

描述

deployment_id

String

继续回滚触发部署生成的唯一的deployment_id,由资源编排服务生成,通常为UUID

接受请求,进行异步处理。可以调用GetStackMetadata来获取异步请求的部署状态

注意:

  • 资源编排服务最终会将异步部署请求排队,在服务端空闲的情况下逐个处理。用户最大等待时长为6小时

状态码: 400

表5 响应Body参数

参数

参数类型

描述

error_code

String

响应码

最小长度:11

最大长度:11

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

状态码: 401

表6 响应Body参数

参数

参数类型

描述

error_code

String

响应码

最小长度:11

最大长度:11

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

状态码: 403

表7 响应Body参数

参数

参数类型

描述

error_code

String

响应码

最小长度:11

最大长度:11

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

状态码: 404

表8 响应Body参数

参数

参数类型

描述

error_code

String

响应码

最小长度:11

最大长度:11

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

状态码: 409

表9 响应Body参数

参数

参数类型

描述

error_code

String

响应码

最小长度:11

最大长度:11

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

状态码: 429

表10 响应Body参数

参数

参数类型

描述

error_code

String

响应码

最小长度:11

最大长度:11

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

状态码: 500

表11 响应Body参数

参数

参数类型

描述

error_code

String

响应码

最小长度:11

最大长度:11

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

请求示例

  • 继续回滚资源栈
    POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/rollbacks
  • 继续回滚资源栈,并提供资源栈id以校验是否与当前资源栈匹配
    POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/rollbacks
    
    {
      "stack_id" : "8592967b-18b0-421b-b6c1-079c9ded3931"
    }

响应示例

状态码: 202

接受请求,正在继续回滚资源栈

{
  "deployment_id" : "8592967b-18b0-421b-b6c1-079c9ded3931"
}

状态码

状态码

描述

202

接受请求,正在继续回滚资源栈

400

用户请求非法

401

用户身份认证失败

403

  1. 资源栈状态非法,不允许继续回滚
  2. 用户无权限调用此API

404

资源栈不存在

409

继续回滚冲突,另一个请求正在操作此资源栈

429

请求数量过多

500

服务器内部错误