调用PreviewStack接口预览指定模板将要创建的资源栈信息。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String PreviewStack

系统规定参数。取值:PreviewStack

Parameters.N.ParameterKey String InstanceType

参数的名称。如果未指定特定参数的名称和值,则ROS将使用模板中指定的默认值。N的最大值为200。

Parameters.N.ParameterValue String ecs.cm4.6xlarge

参数值。N的最大值为200。

RegionId String cn-beijing

资源栈所属的地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。

StackName String MyStack

资源栈名称。资源栈名称可以包含数字、字母(大小写敏感)、连字符、下划线,必须以数字或字母开头,长度不超过255个字符。

DisableRollback Boolean false

当创建资源栈失败时,是否禁用回滚策略。取值范围:

  • true:禁用回滚,即当创建资源栈失败时不进行回滚。
  • false:不禁用回滚,即当创建资源栈失败时进行回滚。

默认值:false

TimeoutInMinutes Long 10

创建资源栈的超时时间。

单位:分钟。

默认值:60。

TemplateBody String {"ROSTemplateFormatVersion": "2015-09-01" }

模板主体的结构。长度为1~524288个字节。如果长度较大,则建议通过HTTP POST+Body Param的方式,将参数放在请求体中进行传递,避免URL过长而导致请求失败。您必须指定参数TemplateBodyTemplateURL,但不能同时指定。

StackPolicyURL String oss://ros-stack-policy/demo

资源栈策略的文件的位置。资源栈策略的文件最大为16384个字节。URL必须指向位于Web服务器(http、https)或阿里云OSS存储空间(例如oss://ros/stack-policy/demo、oss://ros/stack-policy/demo?RegionId=cn-hangzhou。OSS地域如未指定,默认与接口参数RegionId相同。)中的策略。您可以指定StackPolicyBodyStackPolicyURL参数,但不能同时指定。URL的最大长度为1350个字节。

StackPolicyBody String {"Statement": [{"Action": "Update:*", "Resource": "*", "Effect": "Allow", "Principal": "*"}]}

资源栈策略主体的结构。长度为1~16384个字节。您可以指定StackPolicyBodyStackPolicyURL参数,但不能同时指定两者。

ClientToken String 123e4567-e89b-12d3-a456-426655440000

保证请求的幂等性。此参数值由客户端生成,并且必须是全局唯一的。仅允许ASCII字符,最多可包含64个字符。更多详情,请参见如何保证幂等性

TemplateURL String oss://ros-template/demo

模板主体的文件的位置。模板主体的文件最大为524288个字节。URL必须指向位于Web服务器(http、https)或阿里云OSS存储空间(例如oss://ros/template/demo、oss://ros/template/demo?RegionId=cn-hangzhou。OSS地域如未指定,默认与接口参数RegionId相同。)中的模板。您必须指定TemplateBodyTemplateURL参数,但不能同时指定。URL的最大长度为1024个字节。

返回数据

名称 类型 示例值 描述
RequestId String B288A0BE-D927-4888-B0F7-B35EF84B6E6F

请求ID。

Stack Struct

资源栈预览数据。

Description String One ECS instance.

资源栈描述。

DisableRollback Boolean false

是否禁用回滚。

Parameters Array

资源栈参数。

ParameterKey String SystemDiskCategory

参数的键。

ParameterValue String cloud_ssd

参数的值。

RegionId String cn-beijing

资源栈所在地域。

Resources Array

资源栈中的资源列表。

Description String ECS instance.

资源描述。

LogicalResourceId String WebServer

资源逻辑ID。

Properties Map { "DiskMappings": [ { "Category": "cloud_ssd", "Size": "20" } ], "SystemDisk_Category": "cloud_ssd", "InstanceChargeType": "PostPaid", "AutoRenew": "False", "WillReplace": true, "ImageId": "centos_7", "InstanceType": "ecs.g6.large", "AllocatePublicIP": true, "AutoRenewPeriod": 1, "IoOptimized": "optimized", "ZoneId": "cn-beijing-g", "VSwitchId": "", "SecurityGroupId": "", "Period": 1, "InternetChargeType": "PayByTraffic", "SystemDiskCategory": "cloud_efficiency", "InternetMaxBandwidthOut": 1, "VpcId": "", "InternetMaxBandwidthIn": 200, "PeriodUnit": "Month" }

资源属性。

RequiredBy List ["Resource1", "Resource2"]

被哪些资源依赖。

ResourceType String ALIYUN::ECS::Instance

资源类型。

Stack Map {}

子资源栈信息。数据结构同整个返回值。

StackName String MyStack

资源栈名称。

StackPolicyBody Map { "Statement": [ { "Action": "Update:*", "Resource": "*", "Effect": "Allow", "Principal": "*" }, { "Action": "Update:*", "Resource": "LogicalResourceId/apple1", "Effect": "Deny", "Principal": "*" } ] }

资源栈策略内容。

TemplateDescription String One ECS instance.

模板描述。

TimeoutInMinutes Integer 10

超时时间。

单位:分钟。

示例

请求示例

http(s)://ros.aliyuncs.com/?Action=PreviewStack
&RegionId=cn-beijing
&Parameters.1.ParameterValue=ecs.cm4.6xlarge
&Parameters.1.ParameterKey=InstanceType
&StackName=MyStack
&TimeoutInMinutes=10
&<公共请求参数>

正常返回示例

XML 格式

<Stack>
    <Description>No description</Description>
    <DisableRollback>true</DisableRollback>
    <Parameters>
        <ParameterKey>UpdateVersion</ParameterKey>
        <ParameterValue>1</ParameterValue>
    </Parameters>
    <RegionId>cn-beijing</RegionId>
    <Resources>
        <Description/>
        <LogicalResourceId>WaitConditionHandle</LogicalResourceId>
        <Properties>
            <Count>-1</Count>
            <Mode>Full</Mode>
            <UpdateVersion>1</UpdateVersion>
        </Properties>
        <ResourceType>ALIYUN::ROS::WaitConditionHandle</ResourceType>
    </Resources>
    <Resources>
        <Description/>
        <LogicalResourceId>nested</LogicalResourceId>
        <Properties>
            <Parameters/>
            <TemplateURL>oss://nested-stack/test/demo</TemplateURL>
            <TimeoutMins>16</TimeoutMins>
        </Properties>
        <ResourceType>ALIYUN::ROS::Stack</ResourceType>
        <Stack>
            <Description>No description</Description>
            <DisableRollback>true</DisableRollback>
            <Parameters>
                <ParameterKey>ALIYUN::AccountId</ParameterKey>
                <ParameterValue>1666666****</ParameterValue>
            </Parameters>
            <Parameters>
                <ParameterKey>ALIYUN::NoValue</ParameterKey>
                <ParameterValue>None</ParameterValue>
            </Parameters>
            <Parameters>
                <ParameterKey>ALIYUN::Region</ParameterKey>
                <ParameterValue>cn-beijing</ParameterValue>
            </Parameters>
            <Parameters>
                <ParameterKey>ALIYUN::StackId</ParameterKey>
                <ParameterValue>None</ParameterValue>
            </Parameters>
            <Parameters>
                <ParameterKey>ALIYUN::StackName</ParameterKey>
                <ParameterValue>test-preview-stack-complex-nested</ParameterValue>
            </Parameters>
            <RegionId>cn-beijing</RegionId>
            <Resources>
                <Description/>
                <LogicalResourceId>WaitConditionHandle</LogicalResourceId>
                <Properties>
                    <Count>-1</Count>
                    <Mode>Full</Mode>
                    <UpdateVersion>1</UpdateVersion>
                </Properties>
                <ResourceType>ALIYUN::ROS::WaitConditionHandle</ResourceType>
            </Resources>
            <StackName>test-preview-stack-complex-nested</StackName>
            <StackPolicyBody>
                <Statement>
                    <Action>Update:*</Action>
                    <Effect>Allow</Effect>
                    <Principal>*</Principal>
                    <Resource>*</Resource>
                </Statement>
                <Statement>
                    <Action>Update:*</Action>
                    <Effect>Deny</Effect>
                    <Principal>*</Principal>
                    <Resource>LogicalResourceId/apple1</Resource>
                </Statement>
            </StackPolicyBody>
            <TemplateDescription>No description</TemplateDescription>
            <TimeoutInMinutes>12</TimeoutInMinutes>
        </Stack>
    </Resources>
    <StackName>test-preview-stack-complex</StackName>
    <StackPolicyBody>
        <Statement>
            <Action>Update:*</Action>
            <Effect>Allow</Effect>
            <Principal>*</Principal>
            <Resource>*</Resource>
        </Statement>
        <Statement>
            <Action>Update:*</Action>
            <Effect>Deny</Effect>
            <Principal>*</Principal>
            <Resource>LogicalResourceId/apple1</Resource>
        </Statement>
    </StackPolicyBody>
    <TemplateDescription>No description</TemplateDescription>
    <TimeoutInMinutes>10</TimeoutInMinutes>
</Stack>
<RequestId>B288A0BE-D927-4888-B0F7-B35EF84B6E6F</RequestId>

JSON 格式

{
    "Stack": {
        "Description": "No description",
        "DisableRollback": true,
        "Parameters": [
            {
                "ParameterKey": "UpdateVersion",
                "ParameterValue": "1"
            }
        ],
        "RegionId": "cn-beijing",
        "Resources": [
            {
                "Description": "",
                "LogicalResourceId": "WaitConditionHandle",
                "Properties": {
                    "Count": -1,
                    "Mode": "Full",
                    "UpdateVersion": 1
                },
                "RequiredBy": [],
                "ResourceType": "ALIYUN::ROS::WaitConditionHandle"
            },
            {
                "Description": "",
                "LogicalResourceId": "nested",
                "Properties": {
                    "Parameters": null,
                    "TemplateURL": "oss://nested-stack/test/demo",
                    "TimeoutMins": 16
                },
                "RequiredBy": [],
                "ResourceType": "ALIYUN::ROS::Stack",
                "Stack": {
                    "Description": "No description",
                    "DisableRollback": true,
                    "Parameters": [
                        {
                            "ParameterKey": "ALIYUN::AccountId",
                            "ParameterValue": "1666666****"
                        },
                        {
                            "ParameterKey": "ALIYUN::NoValue",
                            "ParameterValue": "None"
                        },
                        {
                            "ParameterKey": "ALIYUN::Region",
                            "ParameterValue": "cn-beijing"
                        },
                        {
                            "ParameterKey": "ALIYUN::StackId",
                            "ParameterValue": "None"
                        },
                        {
                            "ParameterKey": "ALIYUN::StackName",
                            "ParameterValue": "test-preview-stack-complex-nested"
                        }
                    ],
                    "RegionId": "cn-beijing",
                    "Resources": [
                        {
                            "Description": "",
                            "LogicalResourceId": "WaitConditionHandle",
                            "Properties": {
                                "Count": -1,
                                "Mode": "Full",
                                "UpdateVersion": 1
                            },
                            "RequiredBy": [],
                            "ResourceType": "ALIYUN::ROS::WaitConditionHandle"
                        }
                    ],
                    "StackName": "test-preview-stack-complex-nested",
                    "StackPolicyBody": {
                        "Statement": [
                            {
                                "Action": "Update:*",
                                "Effect": "Allow",
                                "Principal": "*",
                                "Resource": "*"
                            },
                            {
                                "Action": "Update:*",
                                "Effect": "Deny",
                                "Principal": "*",
                                "Resource": "LogicalResourceId/apple1"
                            }
                        ]
                    },
                    "TemplateDescription": "No description",
                    "TimeoutInMinutes": 12
                }
            }
        ],
        "StackName": "test-preview-stack-complex",
        "StackPolicyBody": {
            "Statement": [
                {
                    "Action": "Update:*",
                    "Effect": "Allow",
                    "Principal": "*",
                    "Resource": "*"
                },
                {
                    "Action": "Update:*",
                    "Effect": "Deny",
                    "Principal": "*",
                    "Resource": "LogicalResourceId/apple1"
                }
            ]
        },
        "TemplateDescription": "No description",
        "TimeoutInMinutes": 10
    },
    "RequestId": "B288A0BE-D927-4888-B0F7-B35EF84B6E6F"    
}

错误码

访问错误中心查看更多错误码。

访问公共错误码查看更多错误码。

HttpCode

错误码

错误信息

描述

400

CircularDependency

Circular Dependency Found: {reason}.

模板包含循环引用。reason为具体原因。

400

InvalidSchema

{reason}.

模板格式不正确。reason为具体原因。

400

InvalidTemplateAttribute

The Referenced Attribute ({resource} {name}) is incorrect.

模板包含不正确的资源属性(输出)引用。resource为资源名,name为属性名。

400

InvalidTemplatePropertyType

The specified value type of ({resource} {section}) is incorrect.

模板资源定义中的字段类型不正确。resource为资源名,section为字段名。

400

InvalidTemplateReference

The specified reference "{name}" (in {referencer}) is incorrect.

模板包含不正确的引用。name为引用名,referencer为引用者。

400

InvalidTemplateSection

The template section is invalid: {section}.

模板包含无效的字段。section为字段名。

400

InvalidTemplateVersion

The template version is invalid: {reason}.

模板版本不正确。reason为具体原因。

400

StackValidationFailed

{reason}.

资源栈校验失败。reason为具体原因。

400

UnknownUserParameter

The Parameter ({name}) was not defined in template.

传递的参数在模板中未定义。name为参数名。

400

UserParameterMissing

The Parameter {name} was not provided.

参数在模板中已定义,但未传递值。name为参数名。

409

StackExists

The Stack ({name}) already exists.

同名资源栈已存在。name为资源栈名称。