条件删除资源栈
功能介绍
条件删除资源栈(DeleteStackEnhanced)
此API用于删除某个资源栈,可以选择是否保留资源。
请谨慎操作,删除资源栈将默认删除与该资源栈相关的所有数据,如:执行计划、资源栈事件、资源栈输出、资源等。
**如果希望删除资源栈保留资源,可以在请求中设置retain_all_resources对资源进行保留。
-
此API会触发删除资源栈,并以最终一致性删除数据,用户可以调用GetStackMetadata或ListStacks跟踪资源栈删除情况。当删除完成后,被删除资源栈将不会在上述API中返回。
-
如果资源栈状态处于非终态(状态以IN_PROGRESS结尾)状态时,则不允许删除。包括但不限于以下状态:
-
正在部署(DEPLOYMENT_IN_PROGRESS)
-
正在删除(DELETION_IN_PROGRESS)
-
正在回滚(ROLLBACK_IN_PROGRESS)
-
-
如果资源栈开启了删除保护,则不允许删除。用户可调用GetStackMetadata,查看返回中的enable_deletion_protection字段判断删除保护是否开启。用户可通过调用UpdateStack关闭删除保护。
-
如果资源栈删除失败,可以根据StackEvents提示信息修复当前模板中的错误后,部署成功后再次删除资源栈。有以下两种方式触发部署:
-
调用CreateExecutionPlan创建执行计划,执行计划创建成功后调用ApplyExecutionPlan部署资源栈。
-
调用DeployStack部署资源栈。
-
URI
POST /v1/{project_id}/stacks/{stack_name}/deletion
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID,可以从调用API处获取,也可以从控制台获取。 |
stack_name |
是 |
String |
资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Client-Request-Id |
是 |
String |
用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
stack_id |
否 |
String |
资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 |
retain_all_resources |
否 |
Boolean |
删除资源栈是否保留资源的标志位,如果不传默认为false,即默认不保留资源(删除资源栈后会删除资源栈中的资源)
|
响应参数
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码: 401
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码: 403
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码: 404
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码: 429
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码: 500
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
请求示例
-
删除资源栈,不保留资源
POST https://{endpoint}/v1/{project_id}/stacks/{stack_name}/deletion { "stack_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b3" }
-
删除资源栈,保留资源
POST https://{endpoint}/v1/{project_id}/stacks/{stack_name}/deletion { "stack_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b3", "retain_all_resources" : true }
响应示例
无
状态码
状态码 |
描述 |
---|---|
202 |
请求接受,异步处理 |
400 |
用户请求非法 |
401 |
用户身份认证失败 |
403 |
|
404 |
资源栈不存在 |
429 |
请求数量过多 |
500 |
服务器内部错误 |