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

获取资源栈集元数据

功能介绍

获取资源栈集元数据(ShowStackSetMetadata)

  • 用户可以使用此API获取资源栈集的元数据

URI

GET /v1/stack-sets/{stack_set_name}/metadata

表1 路径参数

参数

是否必选

参数类型

描述

stack_set_name

String

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

最小长度:1

最大长度:128

表2 Query参数

参数

是否必选

参数类型

描述

stack_set_id

String

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

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

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

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

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

最小长度:36

最大长度:36

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

Client-Request-Id

String

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

最小长度:36

最大长度:128

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

stack_set_id

String

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

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

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

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

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

最小长度:36

最大长度:36

stack_set_name

String

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

最小长度:1

最大长度:128

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

status

String

资源栈集的状态

  • IDLE - 资源栈集空闲
  • OPERATION_IN_PROGRESS - 资源栈集操作中
  • DEACTIVATED - 资源栈集禁用

枚举值:

  • IDLE
  • OPERATION_IN_PROGRESS
  • DEACTIVATED

vars_uri_content

String

vars_uri对应的文件内容

vars_body

String

HCL参数文件的内容。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。

  • vars_body使用HCL的tfvars格式,用户可以将“.tfvars”中的内容提交到vars_body中
  • 资源编排服务支持vars_body和vars_uri,如果以上两种方式中声名了同一个变量,将报错400
  • 如果vars_body过大,可以使用vars_uri
  • 资源栈集不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储对应的vars_body。

最小长度:0

最大长度:51200

create_time

String

资源栈集的创建时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。

update_time

String

资源栈集的更新时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。

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

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

表5 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

表6 响应Body参数

参数

参数类型

描述

error_code

String

响应码

最小长度:11

最大长度:11

error_msg

String

响应消息

encoded_authorization_message

String

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

状态码: 401

表7 响应Body参数

参数

参数类型

描述

error_code

String

响应码

最小长度:11

最大长度:11

error_msg

String

响应消息

encoded_authorization_message

String

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

状态码: 403

表8 响应Body参数

参数

参数类型

描述

error_code

String

响应码

最小长度:11

最大长度:11

error_msg

String

响应消息

encoded_authorization_message

String

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

状态码: 404

表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

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

请求示例

  • 获取指定资源栈集的元数据
    GET https://{endpoint}/v1/stack_sets/my_hello_world_stack_set/metadata
  • 获取资源栈集元数据,并提供资源栈集id以校验是否与当前资源栈集匹配
    GET https://{endpoint}/v1/stack_sets/my_hello_world_stack_set/metadata?stack_set_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2

响应示例

状态码: 200

获取资源栈集元数据成功

{
  "stack_set_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7",
  "stack_set_name" : "my_hello_world_stack_set",
  "stack_set_description" : "my first stack set",
  "initial_stack_description" : "my stack created by stack set",
  "permission_model" : "SELF_MANAGED",
  "managed_agency_name" : "my_managed_agency_name",
  "administration_agency_name" : "my_administration_agency_name",
  "status" : "OPERATION_IN_PROGRESS",
  "create_time" : "2023-03-16T03:28:20.210Z",
  "update_time" : "2023-05-24T08:56:10.210Z",
  "managed_operation" : {
    "enable_parallel_operation" : false
  }
}

状态码

状态码

描述

200

获取资源栈集元数据成功

400

用户请求非法

401

用户身份认证失败

403

用户无权限调用此API

404

资源栈集不存在

429

请求数量过多

500

服务器内部错误