更新时间:2024-12-13 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下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Client-Request-Id

String

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

表3 请求Body参数

参数

是否必选

参数类型

描述

stack_set_id

String

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

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

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

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

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

stack_set_description

String

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

initial_stack_description

String

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

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

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

administration_agency_name

String

管理委托名称

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

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

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

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

创建委托及授权方式

managed_agency_name

String

被管理的委托名称。

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

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

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

创建委托及授权方式

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

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

call_identity

String

仅支持资源栈集权限模式为SERVICE_MANAGED时指定该参数。用于指定用户是以组织管理账号还是成员账号中的服务委托管理员身份调用资源栈集。默认为SELF。

当资源栈集权限模式为SELF_MANAGED时,默认为SELF。

  • 无论指定何种用户身份,涉及操作的资源栈集始终在组织管理账号名下。*

    • SELF - 以组织管理账号身份调用。

    • DELEGATED_ADMIN - 以服务委托管理员身份调用。用户的华为云账号必须在组织中已经被注册为”资源编排资源栈集服务“的委托管理员。

表4 managed_operation

参数

是否必选

参数类型

描述

enable_parallel_operation

Boolean

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

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

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

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

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

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

响应参数

状态码: 400

表5 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

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

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表6 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 401

表7 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

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

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表8 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 403

表9 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

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

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表10 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 404

表11 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

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

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表12 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 409

表13 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

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

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表14 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 429

表15 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

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

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表16 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 500

表17 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

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

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表18 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

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}
    
    {
      "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

服务器内部错误