本文为您介绍如何通过阿里云CLI(3.0.25及以上版本)调用更改集相关的API。

CreateChangeSet

创建更改集。

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

系统规定参数。取值:CreateChangeSet。

--ChangeSetName String MyChangeSet

更改集的名称。 该名称在与指定资源栈关联的所有更改集中必须是唯一的。

更改集名称只能包含字母数字字符(区分大小写),连字符和下划线。 它必须以字母字符开头,不能超过255个字符。

--Parameters.N.ParameterKey String Amount

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

N最大值为200。

--Parameters.N.ParameterValue String 12

参数的值。

N最大值为200。

--ChangeSetType String UPDATE

更改集的类型。如果需要为新资源栈创建更改集,则指定CREATE。如果需要为现有资源栈创建更改集,则指定UPDATE。

如果为新资源栈创建更改集,则ROS会创建具有唯一资源栈ID的资源栈。 资源栈将处于REVIEW_IN_PROGRESS状态,直到您执行更改集。

默认情况下,ROS指定UPDATE。 您不能使用UPDATE类型为新资源栈创建更改集,也不能使用CREATE类型为现有资源栈创建更改集。

可选值:

  • CREATE
  • UPDATE

默认值:UPDATE。

--Description String It is a demo.

帮助您识别此更改集的说明。

最大长度1024字节。

--StackName String MyStack

要为其创建更改集的新资源栈的名称。资源栈名称可以包含数字、字母(大小写敏感)、连字符、下划线。必须以数字或字母开头,且长度不超过255个字符。

仅在更改集类型为CREATE时生效,且必须指定。

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

要为其创建更改集的现有资源栈的ID。 ROS通过将此资源栈的信息与您提交的信息(例如修改的模板或不同的参数输入值)进行比较来生成更改集。

仅在更改集类型为UPDATE时生效,且必须指定。

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

包含模板体的结构,最小长度为1个字节,最大长度为51200个字节。

您必须指定TemplateBody或TemplateURL参数,但不能同时指定两者。

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

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

您必须指定TemplateBody或TemplateURL参数,但不能同时指定两者。

--TimeoutInMinutes Long 12

资源栈状态变为CREATE_FAILED或UPDATE_FAILED之前可以经过的时间量。

当更改集类型为CREATE时,则该参数是必需的。当更改集类型为UPDATE时,则为可选参数。

取值范围:10~1440(分钟)。

默认值:10(分钟)。

--DisableRollback Boolean false

如果资源栈创建或更新失败,则设置为true以禁用资源栈回滚。 如果为新资源栈创建更改集,则默认为false,否则将使用先前的值。

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

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

当更改集类型为CREATE时,您可以指定StackPolicyBody或StackPolicyURL参数,但不能同时指定两者。

当更改集类型为UPDATE时,您只能指定以下参数之一:
  • StackPolicyBody
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
--StackPolicyURL String oss://ros/stack-policy/demo

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

当更改集类型为CREATE时,您可以指定StackPolicyBody或StackPolicyURL参数,但不能同时指定两者。

当更改集类型为UPDATE时,您只能指定以下参数之一:
  • StackPolicyBody
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
--StackPolicyDuringUpdateBody String {"Statement":[{"Effect":"Allow","Action":"Update:*","Principal":"*","Resource":"*"}]}

包含临时覆盖资源栈策略主体的结构。最小长度为1个字节,最大长度为16384个字节。

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

仅在更改集类型为UPDATE时生效。您只能指定以下参数之一:
  • StackPolicyBody
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
--StackPolicyDuringUpdateURL String oss://ros/stack-policy/demo

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

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

仅在更改集类型为UPDATE时生效。您只能指定以下参数之一:
  • StackPolicyBody
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
--UsePreviousParameters Boolean true

仅在更改集类型为UPDATE时生效。对于未传递的参数,是否使用上次传递的值。

默认值:false。

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

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

N最大值为5,每个URL的最大长度为1024。

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

保证请求的幂等性。 该值由客户端生成,并且必须是全局唯一的。 仅允许使用字母数字字符(区分大小写),连字符和下划线。 它最多可包含64个字符。更多详情,请参见如何保证幂等性

请求示例

aliyun ros CreateChangeSet --RegionId cn-beijing  --ChangeSetName MyChangeSet --Parameters.1.ParameterKey Amount --Parameters.1.ParameterValue  --TemplateURL oss://ros/template/demo

正常返回示例

{
        "ChangeSetId":"e8dshe0c-6428-46ab-a5g3-fddss6hg****",
        "StackId":"4a6c2547-3v5f-4y7f-bs8a-a14bf639****",
        "RequestId":"9C039DDC-98B2-4668-9FCC-EAE9BAEFDD36"
}

GetChangeSet

查询更改集信息。

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

更改集所属的地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。

--ChangeSetId String 1f6521a4-05af-4975-afe9-bc4b45ad****

更改集ID。

--ShowTemplate Boolean true

是否获取模板,默认值为false。

请求示例

aliyun ros GetChangeSet --ChangeSetId 31e744f4-01a5-4015-bded-9560f4b0**** --ShowTemplate true

正常返回示例

{
        "ExecutionStatus":"AVAILABLE",
        "Parameters":[
                {
                        "ParameterValue":"342546988786****",
                        "ParameterKey":"ALIYUN::AccountId"
                },
                {
                        "ParameterValue":"None",
                        "ParameterKey":"ALIYUN::NoValue"
                },
                {
                        "ParameterValue":"cn-beijing",
                        "ParameterKey":"ALIYUN::Region"
                },
                {
                        "ParameterValue":"c18d62d8-51ce-4e8e-b8f6-e00be431****",
                        "ParameterKey":"ALIYUN::StackId"
                },
                {
                        "ParameterValue":"MyStack",
                        "ParameterKey":"ALIYUN::StackName"
                },
                {
                        "ParameterValue":"sg-bfwb3h3eosga1tj5****",
                        "ParameterKey":"SecurityGroupId"
                }
        ],
        "Changes":[
                {
                        "Type":"Resource",
                        "ResourceChange":{
                                "LogicalResourceId":"WebServer",
                                "ResourceType":"ALIYUN::ECS::Instance",
                                "Action":"Add",
                                "Details":[],
                                "Scope":[]
                        }
                }
        ],
        "Description":"It is a demo.",
        "TimeoutInMinutes":12,
        "ChangeSetId":"31e744f4-01a5-4015-bded-9560f4b0****",
        "StackId":"c18d62d8-51ce-4e8e-b8f6-e00be431****",
        "DisableRollback":false,
        "ChangeSetName":"MyChangeSet",
        "ChangeSetType":"CREATE",
        "StackName":"MyStack",
        "Status":"CREATE_COMPLETE",
        "TemplateBody":"{\"ROSTemplateFormatVersion\":\"2015-09-01\",\"Parameters\":{\"SecurityGroupId\":{\"Type\":\"String\"}},\"Resources\":{\"WebServer\":{\"Type\":\"ALIYUN::ECS::Instance\",\"Properties\":{\"ImageId\":\"centos_7\",\"InstanceType\":\"ecs.c6.large\",\"SecurityGroupId\":{\"Ref\":\"SecurityGroupId\"}}}},\"Outputs\":{\"InstanceId\":{\"Value\":{\"Fn:GetAtt\":[\"WebServer\",\"InstanceId\"]}},\"PublicIp\":{\"Value\":{\"Fn:GetAtt\":[\"WebServer\",\"PublicIp\"]}}}}",
        "RequestId":"A46D85A6-9C8E-4603-9989-1FF3F91512F6",
        "RegionId":"cn-beijing",
        "CreateTime":"2019-09-05T14:39:31"
}

DeleteChangeSet

删除更改集。

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

更改集所属的地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。

--ChangeSetId String 1f6521a4-05af-4975-afe9-bc4b45ad****

更改集ID。

请求示例

aliyun ros DeleteChangeSet --ChangeSetId 31e744f4-01a5-4015-bded-9560f4b0****

正常返回示例

{
        "RequestId":"A74B9A63-C40A-41B9-9CCE-E4757E48FFA0"
}

ExecuteChangeSet

执行更改集。

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

更改集所属的地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。

--ChangeSetId String 1f6521a4-05af-4975-afe9-bc4b45ad****

更改集ID。

请求示例

aliyun ros ExecuteChangeSet --ChangeSetId 31e744f4-01a5-4015-bded-9560f4b0****

正常返回示例

{
        "RequestId":"0A46C1A6-6823-43A7-8EF1-D8950DCF29D8"
}

ListChangeSets

查询更改集列表。

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

更改集所属的地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。

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

资源栈ID。

--ChangeSetName.N RepeatList MyChangeSet

更改集的名称。

N最大值为5。

--Status.N RepeatList CREATE_COMPLETE

更改集的状态。可选值:

  • CREATE_PENDING
  • CREATE_IN_PROGRESS
  • CREATE_COMPLETE
  • CREATE_FAILED
  • DELETE_FAILED
  • DELETE_COMPLETE

N最大值为5。

--ExecutionStatus.N RepeatList AVAILABLE

更改集的执行状态。可选值:

  • UNAVAILABLE
  • AVAILABLE
  • EXECUTE_IN_PROGRESS
  • EXECUTE_COMPLETE
  • EXECUTE_FAILED
  • OBSOLETE

N最大值为5。

--PageNumber Long 1

更改集列表的页码,起始值为1。

默认值为1。

--PageSize Long 10

分页查询时设置的每页行数。最小值为1,最大值为50。

默认值为10。

请求示例

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

正常返回示例

{
        "PageNumber":1,
        "TotalCount":1,
        "PageSize":10,
        "RequestId":"24AA105D-6AFB-4EBD-923A-DC3A5B10D62A",
        "ChangeSets":[
                {
                        "ExecutionStatus":"AVAILABLE",
                        "Status":"CREATE_COMPLETE",
                        "Description":"It is a demo.",
                        "ChangeSetId":"31e744f4-01a5-4015-bded-9560f4b0****",
                        "StackId":"c18d62d8-51ce-4e8e-b8f6-e00be431****",
                        "RegionId":"cn-beijing",
                        "CreateTime":"2019-09-05T14:39:31",
                        "ChangeSetName":"MyChangeSet",
                        "ChangeSetType":"UPDATE",
                        "StackName":"MyStack"
                }
        ]
}