资源编排服务 RFS-创建资源栈集:请求参数

时间:2024-09-27 18:16:56

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

Client-Request-Id

String

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

最小长度:36

最大长度:128

表2 请求Body参数

参数

是否必选

参数类型

描述

stack_set_name

String

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

最小长度:1

最大长度:128

stack_set_description

String

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

最小长度:0

最大长度:1024

permission_model

String

权限模型,定义了 RFS 操作资源栈集时所需委托的创建方式,枚举值,默认为SELF_MANAGED。用户可以使用创建资源栈集(CreateStackSet)API 指定该参数。该参数暂不支持更新。用户如果想要更新权限模型,可以通过先删除再创建同名资源栈集实现。

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

  • SERVICE_MANAGED - 服务管理,基于Organization服务,RFS会自动创建部署Organization 成员账号时所需的全部 IAM 委托。用户需要提前在Organization可信服务列表中将” 资源编排 资源栈集服务“启用,且只有Organization的管理账号或”资源编排资源栈集服务“的委托管理员,才允许指定SERVICE_MANAGED创建资源栈集,否则会报错。

缺省值:SELF_MANAGED

枚举值:

  • SELF_MANAGED

  • SERVICE_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

template_body

String

HCL模板,描述了资源的目标状态。资源编排服务将比较此模板与当前远程资源的状态之间的区别。

template_body和template_uri 必须有且只有一个存在

注意:

  • 资源栈集不支持敏感 数据加密 ,资源编排服务会直接明文使用、log、展示、存储对应的template_body

最小长度:0

最大长度:51200

template_uri

String

HCL模板的OBS地址,该模板描述了资源的目标状态。资源编排服务将比较此模板与当前远程资源的状态之间的区别

OBS地址支持同类型Region之间进行互相访问(Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region)

对应的文件应该是纯tf文件或zip压缩包

纯tf文件需要以“.tf”或者“.tf.json”结尾,并遵守HCL语法,且文件的编码格式须为UTF-8

压缩包目前只支持zip格式,文件需要以".zip"结尾。解压后的文件不得包含".tfvars"文件。解压前最大支持1MB,解压后最大支持1MB。zip压缩包文件数量不能超过100个

template_body和template_uri 必须有且只有一个存在

注意:

  • 资源栈集不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储template_uri对应的模板文件内容。

  • template_uri对应的模板文件如果为zip类型,则内部的文件或文件夹名称长度不得超过255个字节,最深路径长度不得超过2048字节,zip包大小不得超过1MB

最小长度:0

最大长度:2048

vars_uri

String

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

OBS地址支持同类型Region之间进行互相访问(Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region)

  • vars_uri需要指向一个OBS的pre-signed URL地址,其他地址暂不支持

  • 资源编排服务支持vars_body和vars_uri,如果以上两种方式中声名了同一个变量,将报错400

  • vars_uri中的内容使用HCL的tfvars格式,用户可以将“.tfvars”中的内容保存到文件并上传到OBS中,并将OBS pre-signed URL传递给vars_uri

  • 资源栈集不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储vars_uri对应的参数文件内容

最小长度:0

最大长度:2048

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

initial_stack_description

String

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

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

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

最小长度:0

最大长度:1024

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

枚举值:

  • SELF

  • DELEGATED_ADMIN

表3 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个处于运行态的资源栈集操作*

support.huaweicloud.com/api-aos/CreateStackSet.html