执行执行计划
功能介绍
执行执行计划(ApplyExecutionPlan)
此API用于执行一个执行计划
- 当执行请求接受后,执行计划状态将变为APPLY_IN_PROGRESS,后台会进行异步处理。
 - 当执行结束后,执行计划状态将变为APPLIED。
 - 用户可以调用GetStackMetadata查询资源栈的状态(status)来跟踪资源栈部署情况以及确认本次执行结果是否成功。
 
如果不希望通过执行计划进行部署操作,也可以选择调用DeployStack进行直接部署
关于执行计划的过期失效:
- 如果指定资源栈下有多个执行计划,则在执行某个执行计划后(无论结果是否成功),剩余所有的执行计划将过期失效;
 - 如果调用ApplyExecutionPlan时,指定的执行计划已经过期失效,则返回403
 
如果资源栈状态处于非终态(即以IN_PROGRESS结尾,详细见下方)状态时,则不允许执行执行计划,并返回403。非终态状态包括但不限于以下状态:
- 正在部署(DEPLOYMENT_IN_PROGRESS)
 - 正在删除(DELETION_IN_PROGRESS)
 - 正在回滚(ROLLBACK_IN_PROGRESS)
 
URI
POST /v1/{project_id}/stacks/{stack_name}/execution-plans/{execution_plan_name}
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        project_id  | 
      
        是  | 
      
        String  | 
      
        项目ID,可以从调用API处获取,也可以从控制台获取。 最小长度:3 最大长度:64  | 
     
| 
        stack_name  | 
      
        是  | 
      
        String  | 
      
        资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128  | 
     
| 
        execution_plan_name  | 
      
        是  | 
      
        String  | 
      
        执行计划的名称。此名字在domain_id+区域+project_id+stack_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128  | 
     
请求参数
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        Client-Request-Id  | 
      
        是  | 
      
        String  | 
      
        用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 最小长度:36 最大长度:128  | 
     
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        execution_plan_id  | 
      
        否  | 
      
        String  | 
      
        执行计划(execution_plan)的唯一Id。 此Id由资源编排服务在生成执行计划的时候生成,为UUID。 由于执行计划名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的执行计划,删除,再重新创建一个同名执行计划。 对于团队并行开发,用户可能希望确保,当前我操作的执行计划就是我认为的那个,而不是其他队友删除后创建的同名执行计划。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的执行计划所对应的ID都不相同,更新不会影响ID。如果给予的execution_plan_id和当前执行计划的ID不一致,则返回400 注意: 
 最小长度:36 最大长度:36  | 
     
| 
        stack_id  | 
      
        否  | 
      
        String  | 
      
        资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36  | 
     
响应参数
状态码: 202
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        deployment_id  | 
      
        String  | 
      
        标识部署的唯一Id,此Id由资源编排服务在触发部署、回滚等操作时生成,为UUID。 接受请求,进行异步处理。可以调用GetStackMetadata来获取异步请求的部署状态 注意: 
  | 
     
状态码: 400
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
状态码: 401
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
状态码: 403
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
状态码: 404
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
状态码: 409
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
状态码: 429
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
状态码: 500
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
请求示例
- 执行指定资源栈下的执行计划
    
POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan - 执行指定资源栈下的执行计划,并提供资源栈id以校验是否与当前资源栈匹配
    
POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan { "stack_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7" } 
响应示例
状态码: 202
请求接受,异步处理
{
  "deployment_id" : "07e21c3e-d33c-4513-9d0f-e9e673817772"
}
 状态码
| 
        状态码  | 
      
        描述  | 
     
|---|---|
| 
        202  | 
      
        请求接受,异步处理  | 
     
| 
        400  | 
      
        用户请求非法  | 
     
| 
        401  | 
      
        用户身份认证失败  | 
     
| 
        403  | 
      
       
  | 
     
| 
        404  | 
      
       
  | 
     
| 
        409  | 
      
        执行冲突,另一个请求正在操作此执行计划  | 
     
| 
        429  | 
      
        请求数量过多  | 
     
| 
        500  | 
      
        服务器内部错误  |