本文为您介绍如何通过阿里云CLI调用资源栈相关的API。

CreateStack

创建资源栈。

名称 类型 是否必选 示例值 描述
--RegionId String cn-hangzhou

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

--StackName String MyStack

资源栈名称。

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

--TimeoutInMinutes Long 10

创建资源栈的超时时间。

  • 默认值:60。
  • 单位:分钟。
--Parameters.N.ParameterKey String InstanceId

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

N最大值:200。

--Parameters.N.ParameterValue String i-xxxxxx

参数值。

N最大值:200。

--DisableRollback Boolean false

当创建资源栈失败时,是否禁用回滚策略。

  • true:禁用回滚,即在创建资源栈失败时不进行回滚。
  • false(默认值):不禁用回滚,即在创建资源栈失败时进行回滚。
--TemplateBody String { "ROSTemplateFormatVersion": "2015-09-01" }

模板的结构。长度为1~524288个字节。

如果长度较大,建议通过HTTP POST+Body Param的方式,将参数放在请求体中进行传递,避免URL过长而导致请求失败。

您可以指定参数TemplateBody或TemplateURL,但不能同时指定。

--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)中的策略,策略文件最大长度为16384个字节。

说明 如果OSS地域未指定,默认与接口参数RegionId相同。

您可以指定参数StackPolicyBody或StackPolicyURL,但不能同时指定。

URL最大长度为1350字节。

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

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

您可以指定StackPolicyBody或StackPolicyURL参数,但不能同时指定。

--NotificationURLs.N RepeatList http://my-site.com/ros-event

接收资源栈事件的URL回调地址。目前仅支持HTTP POST。

  • N最大值:5。
  • 每个URL的最大长度:1024个字节。

资源栈的状态发生变化时,会进行通知。当资源栈启用回滚时,CREATE_FAILED(创建失败)和UPDATE_FAILED(更新失败)不会通知,而CREATE_ROLLBACK(创建失败回滚)和ROLLBACK(更新失败回滚)会进行通知。

说明 IN_PROGRESS状态不会通知。

无论资源栈是否定义了Outputs都会进行通知。通知内容示例如下:

{
    "Outputs": [
        {
            "Description": "No description given",
            "OutputKey": "InstanceId",
            "OutputValue": "i-xxx"
        }
    ],
    "StackId": "80bd6b6c-e888-4573-ae3b-93d29113****",
    "StackName": "test-notification-url",
    "Status": "CREATE_COMPLETE"
}
--TemplateURL String oss://ros-template/demo

包含模板主体的文件的位置。URL必须指向位于Web服务器(HTTP或HTTPS)或阿里云OSS存储桶(例如:oss://ros/template/demo、oss://ros/template/demo?RegionId=cn-hangzhou)中的模板,模板最大长度为524288个字节。

说明 如果OSS地域未指定,默认与接口参数RegionId相同。

您可以指定TemplateBody或TemplateURL参数,但不能同时指定。

--ClientToken String 123e4567-e89b-12d3-a456-42665544****

保证请求的幂等性。 该值由客户端生成,并且必须全局唯一。

仅允许使用字母、数字、短横线(-)和下划线(_),最多可包含64个字符。

更多详情,请参见如何保证幂等性

调用示例

aliyun ros CreateStack --StackName MyStack --TemplateBody "{"ROSTemplateFormatVersion": "2015-09-01"}" --TimeoutInMinutes 10

正常返回示例

{
        "StackId": "c18d62d8-51ce-4e8e-b8f6-e00be431****",
        "RequestId": "53C2DB3A-8374-4464-9466-952614EEC159"
}

ListStacks

查询资源栈列表。

名称 类型 是否必选 示例值 描述
--RegionId String cn-hangzhou

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

--StackName.N RepeatList MyStack

资源栈名称。

长度不超过255个字符,必须以数字或字母开头,可包含数字、字母、短横线(-)和下划线(_)。支持使用通配符(*)进行模糊搜索。

N取值:1~5。

--Status.N RepeatList CREATE_COMPLETE

资源栈状态。

取值:

  • CREATE_IN_PROGRESS
  • CREATE_FAILED
  • CREATE_COMPLETE
  • UPDATE_IN_PROGRESS
  • UPDATE_FAILED
  • UPDATE_COMPLETE
  • DELETE_IN_PROGRESS
  • DELETE_FAILED
  • DELETE_COMPLETE
  • ROLLBACK_IN_PROGRESS
  • ROLLBACK_FAILED
  • ROLLBACK_COMPLETE
  • CHECK_IN_PROGRESS
  • CHECK_FAILED
  • CHECK_COMPLETE
  • REVIEW_IN_PROGRESS
--ParentStackId String fgce558a-bdd6-d52j-555b-63755971****

父资源栈ID。

--ShowNestedStack Boolean true

是否列出嵌套资源栈。

--PageNumber Long 1

资源栈列表的页码。

  • 起始值:1。
  • 默认值:1。
--PageSize Long 10

分页查询时设置的每页行数。

  • 最大值:100。
  • 默认值:10。

调用示例

aliyun ros ListStacks --PageNumber 3 --PageSize 1

正常返回示例

{
        "PageNumber": 3,
        "TotalCount": 4,
        "PageSize": 1,
        "RequestId": "B2B3B873-25AE-4A86-B320-8C7298628393",
        "Stacks": [
                {
                        "StatusReason": "Stack CREATE completed successfully",
                        "Status": "CREATE_COMPLETE",
                        "TimeoutInMinutes": 60,
                        "StackId": "aace595a-a00d-4631-858b-61134991****",
                        "RegionId": "cn-beijing",
                        "CreateTime": "2019-08-26T09:52:06",
                        "DisableRollback": false,
                        "StackName": "Test"
                }
        ]
}

GetStack

查询资源栈信息。

名称 类型 是否必选 示例值 描述
--RegionId String cn-hangzhou

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

--StackId String 4a6c9851-3b0f-4f5f-b4ca-a14bf691****

资源栈ID。

--ClientToken String 123e4567-e89b-12d3-a456-42665544****

保证请求的幂等性。 该值由客户端生成,并且必须全局唯一。

仅允许使用字母、数字、短横线(-)和下划线(_), 最多可包含64个字符。

更多详情,请参见如何保证幂等性

调用示例

aliyun ros GetStack --RegionId cn-hangzhou --StackId 628e9ed4-899b-4e64-8a8c-2a2b00e4****

正常返回示例

{        
"Parameters": [
                {
                        "ParameterValue": "22536460730754****",
                        "ParameterKey": "ALIYUN::AccountId"
                },
                {
                        "ParameterValue": "cn-beijing",
                        "ParameterKey": "ALIYUN::Region"
                },
                {
                        "ParameterValue": "628e9ed4-899b-4e64-8a8c-2a2b00e4****",
                        "ParameterKey": "ALIYUN::StackId"
                },
                {
                        "ParameterValue": "MyStack",
                        "ParameterKey": "ALIYUN::StackName"
                }
        ],
        "TimeoutInMinutes": 60,
        "Description": "No description",
        "StackId": "628e9ed4-899b-4e64-8a8c-2a2b00e4****",
        "UpdateTime": "2019-08-26T08:27:23",
        "DisableRollback": false,
        "StackName": "MyStack",
        "StatusReason": "Stack successfully updated",
        "Status": "UPDATE_COMPLETE",
        "TemplateDescription": "No description",
        "CreateTime": "2019-08-26T08:26:05",
        "RegionId": "cn-hangzhou",
        "RequestId": "754AEAE5-C800-41EC-A64D-A08C1A4A718F"
}

UpdateStack

更新资源栈。

名称 类型 是否必选 示例值 描述
--RegionId String cn-beijing

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

--StackId String 4a6c9851-3b0f-4f5f-b4ca-a14bf691****

资源栈ID。

--Parameters.N.ParameterKey String InstanceId

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

N最大值:200。

--Parameters.N.ParameterValue String i-xxxxxx

参数的值。

N最大值:200。

--ClientToken String 123e4567-e89b-12d3-a456-42665544****

保证请求的幂等性。 该值由客户端生成,并且必须全局唯一。

仅允许使用字母、数字、短横线(-)和下划线(_), 最多可包含64个字符。

更多详情,请参见如何保证幂等性

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

临时覆盖资源栈策略主体的结构。长度为1~16384个字节。

如果要更新受保护的资源,请在更新期间指定临时覆盖资源栈策略。如果未指定资源栈策略,将使用与资源栈关联的当前策略。

此参数仅在更改集类型为UPDATE时生效。 您只能指定以下参数之一:

  • StackPolicyBody
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
--TimeoutInMinutes Long 10

更新资源栈的超时时间。

  • 默认值:60。
  • 单位:分钟。
--TemplateBody String { "ROSTemplateFormatVersion": "2015-09-01" }

模板主体的结构。长度为1~524288个字节。

如果长度较大,则建议通过HTTP POST+Body Param的方式,将参数放在请求体中进行传递,避免URL过长而导致请求失败。

您必须指定TemplateBody或TemplateURL,但不能同时指定。

--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)中的策略,策略文件最大长度为16384个字节。

说明 如果OSS地域未指定,默认与接口参数RegionId相同。

您可以指定参数StackPolicyBody或StackPolicyURL,但不能同时指定。

URL最大长度为1350字节。

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

更新资源栈策略的文件的位置。URL必须指向位于Web服务器(HTTP或HTTPS)或阿里云OSS存储空间(例如:oss://ros/stack-policy/demo、oss://ros/stack-policy/demo?RegionId=cn-hangzhou)中的策略,策略的文件最大值为16384个字节。

说明 如果OSS地域未指定,默认与接口参数RegionId相同。

URL最大长度为1350字节。

如果要更新受保护的资源,请在更新期间指定临时覆盖资源栈策略。如果未指定资源栈策略,则将使用与资源栈关联的当前策略。此参数仅在更改集类型为UPDATE时生效。您只能指定以下参数之一:

  • StackPolicyBody
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
--StackPolicyBody String {"Statement": [{"Action": "Update:*", "Resource": "*", "Effect": "Allow", "Principal": "*"}]}

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

您可以指定参数StackPolicyBody或StackPolicyURL,但不能同时指定。

--UsePreviousParameters Boolean true

未传递的参数是否使用上次传递的值。

--DisableRollback Boolean false

更新资源栈失败时,是否禁用回滚策略。

  • true:禁用回滚,即在更新资源栈失败时不会进行回滚。
  • false(默认值):不禁用回滚,即在更新资源栈失败时会进行回滚。
--TemplateURL String oss://ros-template/demo

包含模板主体的文件的位置。 URL必须指向位于Web服务器(HTTP或HTTPS)或阿里云OSS存储桶(例如:oss://ros/template/demo、oss://ros/template/demo?RegionId=cn-hangzhou)中的模板,模板最大值为524288个字节。

说明 如果OSS地域未指定,默认与接口参数RegionId相同。

您可以指定参数TemplateBody或TemplateURL,但不能同时指定。

URL最大长度为1024个字节。

请求示例

aliyun ros UpdateStack --TemplateBody '{"ROSTemplateFormatVersion": "2015-09-01", "Parameters": {"username": {"Type": "String", "Label": "cli"}}, "Resources": {"TestVPC": {"Type": "ALIYUN::ECS::VPC", "Properties": {"CidrBlock": "172.*.*.*/*", "VpcName": "vpc-test"}}}}' --Parameters.1.ParameterKey 'username' --Parameters.1.ParameterValue 'test_parameter' --StackId c18d62d8-51ce-4e8e-b8f6-e00be431****

正常返回示例

{
        "StackId": "c18d62d8-51ce-4e8e-b8f6-e00be431****",
        "RequestId": "53C2DB3A-8374-4464-9466-952614EEC467"
}

PreviewStack

预览指定模板将要创建的资源栈信息。

名称 类型 是否必选 示例值 描述
--RegionId String cn-beijing

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

--StackName String MyStack

资源栈名称。

长度不超过255个字符,必须以数字或字母开头,可包含数字、字母、短横线(-)和下划线(_)。支持使用通配符(*)进行模糊搜索。

N取值:1~5。

--TimeoutInMinutes Long 10

创建资源栈的超时时间。

  • 默认值:60。
  • 单位:分钟。
--Parameters.N.ParameterValue String ecs.cm4.6xlarge

参数的值。

N最大值:200。

--Parameters.N.ParameterKey String InstanceType

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

N最大值:200。

--DisableRollback Boolean false

当创建资源栈失败时,是否禁用回滚策略。

  • true:禁用回滚,即在创建资源栈失败时不会进行回滚。
  • false(默认值):不禁用回滚,即在创建资源栈失败时会进行回滚。
--TemplateBody String { "ROSTemplateFormatVersion": "2015-09-01" }

模板的结构。长度为1~524288个字节。

如果长度较大,建议通过HTTP POST+Body Param的方式,将参数放在请求体中进行传递,避免URL过长而导致请求失败。

您可以指定参数TemplateBody或TemplateURL,但不能同时指定。

--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)中的策略,策略文件最大长度为16384个字节。

说明 如果OSS地域未指定,默认与接口参数RegionId相同。

您可以指定参数StackPolicyBody或StackPolicyURL,但不能同时指定。

URL最大长度为1350字节。

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

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

您可以指定StackPolicyBody或StackPolicyURL参数,但不能同时指定。

--TemplateURL String oss://ros-template/demo

包含模板主体的文件的位置。URL必须指向位于Web服务器(HTTP或HTTPS)或阿里云OSS存储桶(例如:oss://ros/template/demo、oss://ros/template/demo?RegionId=cn-hangzhou)中的模板,模板最大长度为524288个字节。

说明 如果OSS地域未指定,默认与接口参数RegionId相同。

您可以指定TemplateBody或TemplateURL参数,但不能同时指定。

--ClientToken String 123e4567-e89b-12d3-a456-42665544****

保证请求的幂等性。 该值由客户端生成,并且必须全局唯一。

仅允许使用字母、数字、短横线(-)和下划线(_),最多可包含64个字符。

更多详情,请参见如何保证幂等性

请求示例

aliyun ros PreviewStack --StackName PreStack --TimeoutInMinutes 10 --TemplateBody "{"ROSTemplateFormatVersion": "2015-09-01"}"

正常返回示例

{
        "Stack": {
                "Parameters": [
                        {
                                "ParameterValue": "26492326756309****",
                                "ParameterKey": "ALIYUN::AccountId"
                        },
                        {
                                "ParameterValue": "None",
                                "ParameterKey": "ALIYUN::NoValue"
                        },
                        {
                                "ParameterValue": "cn-hangzou",
                                "ParameterKey": "ALIYUN::Region"
                        },
                        {
                                "ParameterValue": "None",
                                "ParameterKey": "ALIYUN::StackId"
                        },
                        {
                                "ParameterValue": "PreStack",
                                "ParameterKey": "ALIYUN::StackName"
                        }
                ],
                "TemplateDescription": "No description",
                "Description": "No description",
                "TimeoutInMinutes": 10,
                "RegionId": "cn-hangzou",
                "DisableRollback": false,
                "Resources": [],
                "StackName": "PreStack"
        },
        "RequestId": "0400B1C6-0CD5-4E6B-A674-9A2507ED07B5"
}

DeleteStack

用于删除资源栈,并可以删除该资源栈下所有的资源。

名称 类型 是否必选 示例值 描述
--RegionId String cn-hangzhou

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

--StackId String 4a6c9851-3b0f-4f5f-b4ca-a14bf691f2ff

资源栈ID。

--RetainAllResources Boolean false

是否保留该资源栈下的所有资源。

调用示例

aliyun ros DeleteStack --RegionId cn-hangzhou --StackId 3763bb21-5aa2-4a46-86ec-4b149b2f****

正常返回示例

{
        "RequestId": "DC2C269B-C29C-4F07-9A6F-6CE47A267A2F"
}

CancelUpdateStack

取消更新资源栈。

名称 类型 是否必选 示例值 描述
--RegionId String cn-hangzhou

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

--StackId String 4a6c9851-3b0f-4f5f-b4ca-a14bf691****

资源栈ID。

--CancelType String Safe

取消更新资源栈类型,建议将DisableRollback设置为true。取值:

  • Quick:尽快取消更新资源栈。
  • Safe:尽可能安全地取消更新资源栈。

请求示例

aliyun ros CancelUpdateStack --StackId c18d62d8-51ce-4e8e-b8f6-e00be431****

正常返回示例

{
        "RequestId":"F5DFBC9B-1604-4281-B52C-BB35B96018C5"
}

ContinueCreateStack

在资源栈创建失败后重新创建资源栈。

名称 类型 是否必选 示例值 描述
--RegionId String cn-hangzhou

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

--StackId String 4a6c9851-3b0f-4f5f-b4ca-a14bf691****

资源栈ID。

--RecreatingResources.N RepeatList WebServer

创建失败的资源将始终重新创建。

您可以指定额外需要重新创建的资源列表,ROS会重新创建所有依赖于其的资源。

请求示例

aliyun ros ContinueCreateStack --StackId c18d62d8-51ce-4e8e-b8f6-e00be43****

正常返回示例

{
        "StackId":"c18d62d8-51ce-4e8e-b8f6-e00be431****",
        "RequestId":"E7C8199F-2DC4-4D1B-BA5E-7860BF3A530C"
}

ListStackEvents

查询资源栈列表。

名称 类型 是否必选 示例值 描述
--RegionId String cn-hangzhou

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

--StackId String 4a6c9851-3b0f-4f5f-b4ca-a14bf691****

资源栈ID。

--Status.N RepeatList CREATE_IN_PROGRESS

资源状态。取值:

  • CREATE_COMPLETE
  • CREATE_FAILED
  • CREATE_IN_PROGRESS
  • DELETE_FAILED
  • DELETE_IN_PROGRESS
  • ROLLBACK_COMPLETE
  • ROLLBACK_FAILED
  • ROLLBACK_IN_PROGRESS
--ResourceType.N RepeatList ALIYUN::ECS::Instance

资源类型列表。

N最大值:200。

--PageNumber Long 1

资源栈列表的页码。

  • 起始值:1。
  • 默认值:1。
--PageSize Long 10

分页查询时设置的每页行数。

  • 最大值:100。
  • 默认值:10。

请求示例

aliyun ros ListStackEvents --StackId c18d62d8-51ce-4e8e-b8f6-e00be431****

正常返回示例

{
        "PageNumber": 1,
        "TotalCount": 2,
        "PageSize": 10,
        "RequestId": "2AE74AAF-F467-4476-AC0E-208C5AE66666",
        "Events": [
                {
                        "StatusReason": "Stack CREATE completed successfully",
                        "Status": "CREATE_COMPLETE",
                        "PhysicalResourceId": "c18d62d8-51ce-4e8e-b8f6-e00be431****",
                        "LogicalResourceId": "test_stack",
                        "ResourceType": "ALIYUN::ROS::Stack",
                        "StackId": "c18d62d8-51ce-4e8e-b8f6-e00be431****",
                        "CreateTime": "2019-09-05T01:27:58",
                        "EventId": "51cc568c-4112-4507-aa8b-d432af5b****",
                        "StackName": "MyStack"
                },
                {
                        "StatusReason": "Stack CREATE started",
                        "Status": "CREATE_IN_PROGRESS",
                        "PhysicalResourceId": "c18d62d8-51ce-4e8e-b8f6-e00be431****",
                        "LogicalResourceId": "test_stack",
                        "ResourceType": "ALIYUN::ROS::Stack",
                        "StackId": "c18d62d8-51ce-4e8e-b8f6-e00be431****",
                        "CreateTime": "2019-09-05T01:27:58",
                        "EventId": "5b9161fc-d4a1-46ef-bbde-a06cceeb****",
                        "StackName": "MyStack"
                }
        ]
}