调用CreateStack接口创建资源栈。
资源栈是针对ROS资源的管理单元,您可通过创建资源栈来创建一组资源。关于资源栈的更多信息,请参见概览。
使用限制:
- 每个阿里云账号最多创建200个资源栈。
- 每个资源栈中最多创建200个资源。
本文将提供一个示例,在杭州地域cn-hangzhou
创建一个名为MyStack
的资源栈,并将资源栈的模板TemplateBody
设置为{"ROSTemplateFormatVersion": "2015-09-01"}
。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | CreateStack |
要执行的操作,取值:CreateStack。 |
Parameters.N.ParameterKey | String | 是 | InstanceId |
模板中已定义的参数的名称。 如果未指定参数的名称和取值,ROS将使用模板中指定的默认值。 N最大值为:200。 说明
|
Parameters.N.ParameterValue | String | 是 | i-xxxxxx |
模板中已定义的参数的取值。 N最大值为:200。 说明
|
RegionId | String | 是 | cn-hangzhou |
资源栈所属的地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。 |
StackName | String | 是 | MyStack |
资源栈名称。 长度不超过255个字符,必须以数字或英文字母开头,可包含数字、英文字母、短划线(-)和下划线(_)。 |
Tags.N.Key | String | 是 | usage |
资源栈的标签键。 N的取值范围为:1~20。 说明
|
DisableRollback | Boolean | 否 | false |
当创建资源栈失败时,是否禁用回滚策略。 取值:
|
TemplateBody | String | 否 | {"ROSTemplateFormatVersion": "2015-09-01"} |
模板主体的结构。长度为1~524,288个字节。如果长度较大,则建议通过HTTP POST+Body Param的方式,将参数放在请求体中进行传递,避免因URL过长而导致请求失败。 说明 您仅能指定TemplateBody、TemplateURL或TemplateId其中一个参数。
|
StackPolicyURL | String | 否 | oss://ros-stack-policy/demo |
包含资源栈策略的文件的位置。 URL必须指向位于Web服务器(HTTP或HTTPS)或阿里云OSS存储桶(例如:oss://ros/stack-policy/demo、oss://ros/stack-policy/demo?RegionId=cn-hangzhou)中的策略,策略文件最大长度为16,384个字节。 如未指定OSS地域,默认与接口参数RegionId相同。 说明 您仅能指定StackPolicyBody或StackPolicyURL其中一个参数。
URL最大长度为1350个字节。 |
TimeoutInMinutes | Long | 否 | 10 |
创建资源栈的超时时间。
|
StackPolicyBody | String | 否 | {"Statement": [{"Action": "Update:*", "Resource": "*", "Effect": "Allow", "Principal": "*"}]} |
包含资源栈策略主体的结构,长度为1~16,384个字节。 说明 您仅能指定StackPolicyBody或StackPolicyURL其中一个参数。
|
ClientToken | String | 否 | 123e4567-e89b-12d3-a456-42665544**** |
保证请求的幂等性。该值由客户端生成,并且必须是全局唯一的。 长度不超过64个字符,可包含英文字母、数字、短划线(-)和下划线(_)。 更多信息,请参见如何保证幂等性。 |
TemplateURL | String | 否 | oss://ros-template/demo |
包含模板主体的文件的位置。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其中一个参数。
|
RamRoleName | String | 否 | test-role |
RAM角色名称。ROS会扮演该角色创建资源栈,使用角色的凭证代表用户进行接口调用。 ROS始终将此角色用于资源栈上将进行的操作。只要用户有权在资源栈上进行操作,即使用户无权使用角色,ROS也会使用此角色,确保角色授予最少的权限。 如果用户未指定该值,ROS将使用以前与资源栈关联的角色。如果没有可用角色,ROS将使用从您的用户凭证中生成的临时凭证。 RAM角色名称最大长度为64个字符。 |
DeletionProtection | String | 否 | Enabled |
是否开启资源栈删除保护。取值:
说明 嵌套资源栈删除保护与根资源栈一致。
|
CreateOption | String | 否 | KeepStackOnCreationComplete |
用于控制创建资源栈的行为,取值:
|
TemplateId | String | 否 | 5ecd1e10-b0e9-4389-a565-e4c15efc**** |
模板ID。支持共享模板和私有模板。 说明 您仅能指定TemplateBody、TemplateURL或TemplateId其中一个参数。
|
TemplateVersion | String | 否 | v1 |
模板版本。仅在指定TemplateId时生效。 |
ResourceGroupId | String | 否 | rg-acfmxazb4ph6aiy**** |
资源组ID。如果不指定该参数,资源栈将加入默认资源组。 关于资源组的更多信息,请参见什么是资源组。 |
NotificationURLs.N | RepeatList | 否 | http://my-site.com/ros-event |
接收资源栈事件的回调地址。取值:
N最大值为5。资源栈的状态发生变化时,会进行通知。当资源栈启用回滚时,CREATE_FAILED(创建失败)和UPDATE_FAILED(更新失败)不会通知,而CREATE_ROLLBACK(创建失败回滚)和ROLLBACK(更新失败回滚)会进行通知。IN_PROGRESS状态不会通知。 无论资源栈是否定义了Outputs都会进行通知。通知内容示例如下:
|
Tags.N.Value | String | 否 | test |
资源栈的标签值。 N的取值范围为:1~20。 |
关于公共请求参数的详情,请参见公共参数。
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
StackId | String | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** |
资源栈ID。 |
RequestId | String | B288A0BE-D927-4888-B0F7-B35EF84B6E6F |
请求ID。 |
示例
请求示例
http(s)://ros.aliyuncs.com/?Action=CreateStack
&RegionId=cn-hangzhou
&StackName=MyStack
&TemplateBody={"ROSTemplateFormatVersion": "2015-09-01"}
&<公共请求参数>
正常返回示例
XML
格式
<CreateStackResponse>
<StackId>4a6c9851-3b0f-4f5f-b4ca-a14bf691****</StackId>
<RequestId>B288A0BE-D927-4888-B0F7-B35EF84B6E6F</RequestId>
</CreateStackResponse>
JSON
格式
{
"StackId": "4a6c9851-3b0f-4f5f-b4ca-a14bf691****",
"RequestId": "B288A0BE-D927-4888-B0F7-B35EF84B6E6F"
}
错误码
访问错误中心查看更多错误码。
错误代码 |
错误信息 |
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为具体原因。 |
StackValidationFailed |
{reason}. |
400 |
资源栈校验失败,reason为具体原因。 |
UnknownUserParameter |
The Parameter ({name}) was not defined in template. |
400 |
传递的参数在模板中未定义,name为参数名。 |
UserParameterMissing |
The Parameter {name} was not provided. |
400 |
参数在模板中已定义,但未传递值,name为参数名。 |
ActionInProgress |
Stack {name} already has an action ({action}) in progress. |
409 |
资源栈在变更中,name为资源栈名称或ID,action为变更操作。 |
StackExists |
The Stack ({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为模板版本。 |