使用资源编排模板创建资源栈组,通过资源栈组,可以在多个阿里云账号中跨地域创建资源栈。
接口说明
资源栈组是针对 ROS 资源栈的管理单元。
授权模式
资源编排为您提供自助管理权限和服务管理权限两种模式创建资源栈组, 您可以使用管理员账号在不同地域下创建资源栈组,实现跨账号、跨地域的创建资源栈。更多信息,请参见概览。
自助管理权限模式
请先为管理员账号和目标账号分别创建 RAM 角色并建立二者之间的联系。具体操作,请参见授权自助管理权限。
当管理员账号(账号 A)在杭州地域下创建一个自助管理权限模式的资源栈组,可以在杭州地域和北京地域分别为目标账号(账号 B 和账号 C)创建对应的资源栈。其中管理员账号和目标账号均为阿里云账号。更多信息,请参见概览。
当您选择该模式时,请输入 PermissionModel 参数为 SELF_MANAGED,并配置 AdministrationRoleName 和 ExecutionRoleName 等相关参数。
服务管理权限模式
您可以使用企业管理账号或委派管理员账号创建服务管理权限模式的资源栈组。更多信息,请参见设置委派管理员账号。
管理员账号(账号 A)在杭州地域创建一个服务管理权限模式的资源栈组,在杭州地域和北京地域分别为资源目录中指定的资源夹创建资源栈,此时 ROS 会自动获取资源夹中的所有成员账号(账号 B 和账号 C)为目标账号。其中管理员账号是资源目录的企业管理账号或委派管理员账号,目标账号是资源目录的成员账号。更多信息,请参见概览。
当您选择该模式时,请输入 PermissionModel 参数为 SERVICE_MANAGED,并完成相关参数配置。
您可以在创建服务管理权限模式的资源栈组时,开启自动部署。当对应资源夹中有新账号加入或账号移除时,ROS 将会自动对资源栈实例进行创建或删除。
本文将提供一个示例,在杭州地域cn-hangzhou
使用 ID 为5ecd1e10-b0e9-4389-a565-e4c15efc****
的模板创建一个名为MyStackGroup
的资源栈组,其使用自助管理权限模式。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
ros:CreateStackGroup | create |
|
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
RegionId | string | 是 | 资源栈组所属的地域 ID。 您可以调用 DescribeRegions 查看最新的阿里云地域列表。 | cn-hangzhou |
StackGroupName | string | 是 | 资源栈组名称。名称在单个地域内唯一。 | MyStackGroup |
Description | string | 否 | 资源栈组描述。 | StackGroup Description |
TemplateBody | string | 否 | 模板主体的结构。长度为 1~524,288 个字节。如果长度较大,则建议通过 HTTP POST+Body Param 的方式,将参数放在请求体中进行传递,避免因 URL 过长而导致请求失败。 说明
您必须且仅能指定 TemplateBody、TemplateURL、TemplateId 或 StackArn 其中一个参数。
| {"ROSTemplateFormatVersion":"2015-09-01"} |
TemplateURL | string | 否 | 包含模板主体的文件的位置。URL 必须指向位于 HTTP Web 服务器(HTTP 或 HTTPS)或阿里云 OSS 存储桶中的模板(1~524,288 个字节)。OSS 存储桶的 URL,例如 oss://ros/template/demo 或 oss://ros/template/demo?RegionId=cn-hangzhou。如未指定 OSS 地域,默认与接口参数 RegionId 相同。 说明
您必须且仅能指定 TemplateBody、TemplateURL、TemplateId 或 StackArn 其中一个参数。
| oss://ros-template/demo |
ClientToken | string | 否 | 保证请求的幂等性。该值由客户端生成,并且必须是全局唯一的。 | 123e4567-e89b-12d3-a456-42665544**** |
AdministrationRoleName | string | 否 | 创建自助管理权限模式的资源栈组时,需指定的供 ROS 扮演的 RAM 管理员角色名称。若不指定,则使用 AliyunROSStackGroupAdministrationRole 作为默认值。ROS 以该角色身份进一步扮演执行角色(AliyunROSStackGroupExecutionRole)来操作资源栈组中资源栈实例所对应的资源栈。 长度为 1~64 个字符,可包含英文字母、数字和短划线(-)。 说明
当 PermissionModel 取值为 SELF_MANAGED 时,该参数必填。
| AliyunROSStackGroupAdministrationRole |
ExecutionRoleName | string | 否 | 创建自助管理权限模式的资源栈组时,需指定的供管理员角色(AliyunROSStackGroupAdministrationRole)扮演的 RAM 执行角色名称。若不指定,则使用 AliyunROSStackGroupExecutionRole 作为默认值。ROS 以该角色身份来操作资源栈组中资源栈实例所对应的资源栈。 长度为 1~64 个字符,可包含英文字母、数字和短划线(-)。 说明
当 PermissionModel 取值为 SELF_MANAGED 时,该参数必填。
| AliyunROSStackGroupExecutionRole |
TemplateId | string | 否 | 模板 ID。支持共享模板和私有模板。 说明
您必须且仅能指定 TemplateBody、TemplateURL、TemplateId 或 StackArn 其中一个参数。
| 5ecd1e10-b0e9-4389-a565-e4c15efc**** |
TemplateVersion | string | 否 | 模板版本。如果不指定,默认取最新版本。 说明
TemplateVersion 仅在指定 TemplateId 时生效。
| v1 |
Parameters | array<object> | 否 | 资源栈组参数列表。 | |
object | 否 | |||
ParameterKey | string | 是 | 参数的名称。如果未指定参数的名称和值,则 ROS 将使用模板中指定的默认值。 N 最大值为 200。 说明
Parameters 为可选参数。若指定了 Parameters,则 Parameters.N.ParameterKey 为必选参数。
| Amount |
ParameterValue | string | 是 | 参数的值。 N 最大值为 200。 说明
Parameters 为可选参数。若指定了 Parameters,则 Parameters.N.ParameterValue 为必选参数。
| 12 |
ResourceGroupId | string | 否 | 资源组 ID。如果不指定该参数,资源栈组将加入默认资源组。 | rg-acfmxazb4ph6aiy**** |
PermissionModel | string | 否 | SELF_MANAGED | |
Tags | array<object> | 否 | 资源栈组的标签。 | |
object | 否 | 资源栈组的标签。 | ||
Key | string | 是 | 资源栈组的标签键。 说明
Tags 为可选参数。如果需要指定 Tags,则 Tags.N.Key 必须指定。
| usage |
Value | string | 否 | 资源栈组的标签值。 | test |
AutoDeployment | object | 否 | 自动部署设置信息。 说明
仅当 PermissionModel 为 SERVICE_MANAGED 时,需要指定该参数。
| |
Enabled | boolean | 是 | 启用或者禁用自动部署。 取值:
| true |
RetainStacksOnAccountRemoval | boolean | 否 | 目标资源夹中删除成员账号时,是否保留成员账号中的资源栈。 取值:
说明
当 Enabled 为 true 时,RetainStacksOnAccountRemoval 必选。
| true |
Capabilities | array | 否 | 资源栈组选项列表,最大长度为 1。 | |
string | 否 | 资源栈组选项。可选值:ExpandModules,在当前账号展开模块。 说明
| ExpandModules | |
StackArn | string | 否 | 资源栈的 ARN,形如 说明
| acs:ros:cn-hangzhou:175458000000****:stack/4a65f506-c3cc-43b6-af06-3f000000**** |
关于公共请求参数的详情,请参见公共参数。
返回参数
示例
正常返回示例
JSON
格式
{
"RequestId": "14A07460-EBE7-47CA-9757-12CC4761D47A",
"StackGroupId": "2c036e78-9e82-428e-afd6-177f5d04****"
}
错误码
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|---|---|
2024-09-12 | OpenAPI 入参发生变更 | 查看变更详情 |
2024-01-11 | API 内部配置变更,不影响调用 | 查看变更详情 |
2023-05-10 | OpenAPI 入参发生变更 | 查看变更详情 |
2022-10-27 | OpenAPI 入参发生变更 | 查看变更详情 |
错误代码 | 错误信息 | HTTP 状态码 | 描述 |
---|---|---|---|
CircularDependency | Circular Dependency Found: {reason}. | 400 | 模板包含循环引用,reason 为具体原因。 |
InvalidSchema | {reason}. | 400 | 模板格式不正确,reason 为具体原因。 |
InvalidTemplateAttribute | The Referenced Attribute ({resource} {name}) is incorrect. | 400 | 模板包含不正确的资源属性(输出)引用,resource 为资源名,name 为属性名。 |
InvalidTemplatePropertyType | The specified value type of ({resource} {section}) is incorrect. | 400 | 模板资源定义中,字段类型不正确,resource 为资源名,section 为字段名。 |
InvalidTemplateReference | The specified reference "{name}" (in {referencer}) is incorrect. | 400 | 模板包含不正确的引用,name 为引用名,referencer 为引用者。 |
InvalidTemplateSection | The template section is invalid: {section}. | 400 | 模板包含无效的字段,section 为字段名。 |
InvalidTemplateVersion | The template version is invalid: {reason}. | 400 | 模板版本不正确,reason 为具体原因。 |
UnknownUserParameter | The Parameter ({name}) was not defined in template. | 400 | 传递的参数在模板中未定义,name 为参数名。 |
UserParameterMissing | The Parameter {name} was not provided. | 400 | 参数在模板中已定义,但未传递值,name 为参数名。 |
StackGroupExists | The StackGroup ({name}) already exists. | 409 | 同名资源栈组已存在,name 为资源栈组名称。 |
TemplateNotFound | The Tempalte ({ ID }) could not be found. | 404 | 模板不存在。ID 为模板 ID。 |
TemplateNotFound | The Template { ID } with version { version } could not be found. | 404 | 模板或指定版本不存在。ID 为模板 ID,version 为模板版本。 |