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

本文将提供一个示例,在杭州地域创建并预览一个名为MyStack的资源栈,该资源栈的模板TemplateBody设置为{"ROSTemplateFormatVersion":"2015-09-01"}

调试

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

请求参数

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

要执行的操作。取值:PreviewStack。

DisableRollback Boolean false

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

  • true:禁用回滚,即当创建资源栈失败时不进行回滚。
  • false(默认值):不禁用回滚,即当创建资源栈失败时进行回滚。
TimeoutInMinutes Long 60

创建资源栈的超时时间。

单位:分钟。

默认值:60。

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个字节。

RegionId String cn-hangzhou

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

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

包含资源栈策略主体的结构,长度为1~16,384个字节。

说明 您仅能指定StackPolicyBody或StackPolicyURL其中一个参数。
StackName String MyStack

资源栈名称。

长度不超过255个字符,必须以数字或英文字母开头,可包含数字、英文字母、短划线(-)和下划线(_)。

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其中一个参数。
TemplateId String 5ecd1e10-b0e9-4389-a565-e4c15efc****

模板ID。支持共享模板和私有模板。

说明 您必须且仅能指定TemplateBody、TemplateURL或TemplateId其中一个参数。
TemplateVersion String v1

模板版本。仅在指定TemplateId时生效。

Parallelism Long 1

资源最大并发数。仅对Terraform类型资源栈生效。

默认为空,用户可以输入大于等于零的整数。

说明 若设置为大于零的整数,则使用该整数;若设置为零或者不设置,则使用Terraform默认值(通常为10)。
Parameters.N.ParameterKey String ALIYUN::AccountId

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

说明 Parameters为可选参数。若指定了Parameters,则Parameters.N.ParameterKey为必选参数。
Parameters.N.ParameterValue String 151266687691****

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

说明 Parameters为可选参数。若指定了Parameters,则Parameters.N.ParameterValue为必选参数。

关于公共请求参数的详情,请参见公共参数

返回数据

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

请求ID。

Stack Object

资源栈预览数据。

TemplateDescription String One ECS instance.

模板描述。

Parameters Array of Parameter

资源栈参数。

ParameterKey String ALIYUN::AccountId

参数名称。

ParameterValue String 151266687691****

参数值。

Description String One ECS instance.

资源栈描述。

DisableRollback Boolean false

是否禁用回滚。

StackName String MyStack

资源栈名称。

TimeoutInMinutes Integer 60

超时时间。

单位:分钟。

StackPolicyBody Map

资源栈策略内容。

Resources Array of Resource

资源栈中的资源列表。

LogicalResourceId String WebServer

资源逻辑ID。

ResourceType String ALIYUN::ECS::Instance

资源类型。

Description String ECS instance.

资源描述。

Stack Map

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

RequiredBy Array of String ["Resource1", "Resource2"]

被哪些资源依赖。

Properties Map

资源属性。

RegionId String cn-hangzhou

资源栈所在地域。

示例

请求示例

http(s)://ros.aliyuncs.com/?Action=PreviewStack
&TemplateBody={"ROSTemplateFormatVersion":"2015-09-01"}
&StackName=MyStack
&RegionId=cn-hangzhou
&<公共请求参数>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<PreviewStackResponse>
    <RequestId>B288A0BE-D927-4888-B0F7-B35EF84B6E6F</RequestId>
    <Stack>
        <Description>No description</Description>
        <Parameters>
            <ParameterValue>151266687691****</ParameterValue>
            <ParameterKey>ALIYUN::AccountId</ParameterKey>
        </Parameters>
        <Parameters>
            <ParameterValue>None</ParameterValue>
            <ParameterKey>ALIYUN::NoValue</ParameterKey>
        </Parameters>
        <Parameters>
            <ParameterValue>cn-hangzhou</ParameterValue>
            <ParameterKey>ALIYUN::Region</ParameterKey>
        </Parameters>
        <Parameters>
            <ParameterValue>df13add2-e8db-45f6-9600-c9090291****</ParameterValue>
            <ParameterKey>ALIYUN::StackId</ParameterKey>
        </Parameters>
        <Parameters>
            <ParameterValue>MyStack</ParameterValue>
            <ParameterKey>ALIYUN::StackName</ParameterKey>
        </Parameters>
        <Parameters>
            <ParameterValue>151266687691****</ParameterValue>
            <ParameterKey>ALIYUN::TenantId</ParameterKey>
        </Parameters>
        <TemplateDescription>One ECS instance</TemplateDescription>
        <RegionId>cn-hangzhou</RegionId>
        <DisableRollback>false</DisableRollback>
        <StackName>MyStack</StackName>
        <TimeoutInMinutes>60</TimeoutInMinutes>
    </Stack>
</PreviewStackResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "B288A0BE-D927-4888-B0F7-B35EF84B6E6F",
  "Stack" : {
    "Description" : "No description",
    "Parameters" : [ {
      "ParameterValue" : "151266687691****",
      "ParameterKey" : "ALIYUN::AccountId"
    }, {
      "ParameterValue" : "None",
      "ParameterKey" : "ALIYUN::NoValue"
    }, {
      "ParameterValue" : "cn-hangzhou",
      "ParameterKey" : "ALIYUN::Region"
    }, {
      "ParameterValue" : "df13add2-e8db-45f6-9600-c9090291****",
      "ParameterKey" : "ALIYUN::StackId"
    }, {
      "ParameterValue" : "MyStack",
      "ParameterKey" : "ALIYUN::StackName"
    }, {
      "ParameterValue" : "151266687691****",
      "ParameterKey" : "ALIYUN::TenantId"
    } ],
    "TemplateDescription" : "One ECS instance",
    "RegionId" : "cn-hangzhou",
    "Resources" : [ ],
    "DisableRollback" : false,
    "StackName" : "MyStack",
    "TimeoutInMinutes" : 60
  }
}

错误码

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

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

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为资源栈名称。

404

TemplateNotFound

The Tempalte ({ ID }) could not be found.

模板不存在。ID为模板ID。

404

TemplateNotFound

The Template { ID } with version { version } could not be found.

模板或指定版本不存在。ID为模板ID,version为模板版本。