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

更新资源栈集

功能介绍

更新资源栈集(UpdateStackSet)

该API可以根据用户给予的信息对资源栈集的属性进行更新,可以更新资源栈集的“stack_set_description”、"initial_stack_description"、"permission_model"、“administration_agency_name”、"managed_agency_name"、“administration_agency_urn”六个属性中的一个或多个。

该API只会更新用户给予的信息中所涉及的字段;如果某字段未给予,则不会对该资源栈集属性进行更新。

注:

  • 所有属性的更新都是覆盖式更新。即,所给予的参数将被完全覆盖至资源栈已有的属性上。
  • 只有在permission_model=SELF_MANAGED时,才可更新administration_agency_name、managed_agency_name和administration_agency_urn。
  • permission_model目前只支持更新SELF_MANAGED
  • 如果资源栈集的状态是OPERATION_IN_PROGRESS,不允许更新资源栈集。

URI

PATCH /v1/stack-sets/{stack_set_name}

表1 路径参数

参数

是否必选

参数类型

描述

stack_set_name

String

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

最小长度:1

最大长度:128

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Client-Request-Id

String

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

最小长度:36

最大长度:128

表3 请求Body参数

参数

是否必选

参数类型

描述

stack_set_id

String

资源栈集(stack_set)的唯一ID。

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

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

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

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

最小长度:36

最大长度:36

stack_set_description

String

资源栈集的描述。可用于客户识别自己的资源栈集。

最小长度:0

最大长度:1024

initial_stack_description

String

初始化资源栈描述。可用于客户识别被资源栈集所管理的资源栈。

资源栈集下的资源栈仅在创建时统一使用该描述。客户想要更新初始化资源栈描述,可以通过UpdateStackSet API。

后续更新资源栈集描述将不会同步更新已管理的资源栈描述。

最小长度:0

最大长度:1024

permission_model

String

权限模型,定义了RFS操作资源栈集时所需委托的创建方式,枚举值

  • SELF_MANAGED - 基于部署需求,用户需要提前手动创建委托,既包含管理账号给RFS的委托,也包含成员账号创建给管理账号的委托。如果委托不存在或错误,创建资源栈集不会失败,部署资源栈集或部署资源栈实例的时候才会报错。

缺省值:SELF_MANAGED

枚举值:

  • SELF_MANAGED

administration_agency_name

String

管理委托名称

资源编排服务使用该委托获取成员账号委托给管理账号的权限。该委托中必须含有iam:tokens:assume权限,用以后续获取被管理委托凭证。如果不包含,则会在新增或者部署实例时报错。

当用户定义SELF_MANAGED权限类型时,administration_agency_name和administration_agency_urn 必须有且只有一个存在。

推荐用户在使用信任委托时给予administration_agency_urn,administration_agency_name只支持接收委托名称,如果给予了信任委托名称,则会在部署模板时失败。

当用户使用SERVICE_MANAGED权限类型时,指定该参数将报错400。

创建委托及授权方式

最小长度:0

最大长度:64

managed_agency_name

String

被管理的委托名称。

资源编排服务会使用该委托获取实际部署资源所需要的权限

不同成员账号委托给管理账号的委托名称需要保持一致。暂不支持根据不同provider定义不同委托权限

当用户定义SELF_MANAGED权限类型时,必须指定该参数。当用户使用SERVICE_MANAGED权限类型时,指定该参数将报错400

创建委托及授权方式

最小长度:0

最大长度:64

administration_agency_urn

String

管理委托URN

资源编排服务使用该委托获取成员账号委托给管理账号的权限。该委托中必须含有sts:tokens:assume权限,用以后续获取被管理委托凭证。如果不包含,则会在新增或者部署实例时报错。

当用户定义SELF_MANAGED权限类型时,administration_agency_name和administration_agency_urn 必须有且只有一个存在。

推荐用户在使用信任委托时给予administration_agency_urn,administration_agency_name只支持接收委托名称,如果给予了信任委托名称,则会在部署模板时失败。

当用户使用SERVICE_MANAGED权限类型时,指定该参数将报错400。

managed_operation

managed_operation object

用于定义管理资源栈集操作的一系列属性。

表4 managed_operation

参数

是否必选

参数类型

描述

enable_parallel_operation

Boolean

资源栈集(stack_set)是否可以并发地创建多个资源栈集操作。该参数作为资源栈集属性,可以通过创建资源栈集API(CreateStackSet)指定,通过更新资源栈集API(UpdateStackSet)更新该参数。

该参数默认为false,资源栈集只允许以串行的方式生成并执行资源栈集操作。同一时刻,资源栈集中只会存在一个处于运行态,即QUEUE_IN_PROGRESS或OPERATION_IN_PROGRESS状态的资源栈集操作,该操作执行完成后,下一个资源栈集操作才允许被创建。

该参数如果设定为true,资源栈集允许并发地生成多个资源栈集操作,执行非冲突操作,并将冲突操作进行排队处理。当冲突操作执行完毕,资源栈集按请求顺序继续执行排队操作。

注:冲突操作指资源栈集允许多个操作同时执行的条件下,如果超过一个以上的操作包含了同一资源栈实例,此时在该资源栈实例上的多个操作被称为冲突操作。

当资源栈集状态为OPERATION_IN_PROGRESS时,不允许用户通过更新资源栈集(UpdateStackSet)来更新该参数。

  • 当前,一个资源栈集下仅允许同时最多存在10个处于运行态的资源栈集操作*

响应参数

状态码: 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

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

请求示例

  • 更新资源栈集的描述信息
    PATCH https://{endpoint}/v1/stack-sets/{stack_set_name}
    
    {
      "stack_set_description" : "my hello world stack set",
      "stack_set_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b4"
    }
  • 更新资源栈集的初始化资源栈时的描述信息
    PATCH https://{endpoint}/v1/stack-sets/{stack_set_name}
    
    {
      "initial_stack_description" : "my initial stack description",
      "stack_set_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b4"
    }
  • 更新资源栈集的权限模型
    PATCH https://{endpoint}/v1/stack-sets/{stack_set_name}
    
    {
      "permission_model" : "SELF_MANAGED",
      "stack_set_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b4"
    }
  • 更新资源栈集的管理委托名称
    PATCH https://{endpoint}/v1/stack-sets/{stack_set_name}
    
    {
      "administration_agency_name" : "my administration agency name",
      "stack_set_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b4"
    }
  • 更新资源栈集的被管理的委托名称
    PATCH https://{endpoint}/v1/stack-sets/{stack_set_name}
    
    {
      "managed_agency_name" : "my managed agency name",
      "stack_set_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b4"
    }

响应示例

状态码

状态码

描述

204

更新资源栈集成功

400

用户请求非法

401

用户身份认证失败

403

  1. 资源栈集状态非法,不允许更新
  2. 用户无权限调用此API

404

资源栈集不存在

409

更新冲突,另一个请求正在操作此资源栈集

429

请求数量过多

500

服务器内部错误