本文为您介绍如何通过阿里云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。 |
--RegionId | String | 是 | cn-hangzhou |
更改集所属的地域ID。您可以调用DescribeRegions查询最新的阿里云地域列表。DescribeRegions详情,请参见DescribeRegions。 |
StackId | String | 否 | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** |
创建更改集的资源栈的ID。ROS通过将此资源栈的信息与您提交的信息(例如修改的模板或不同的参数输入值)进行比较来生成更改集。 此参数仅在更改集类型为UPDATE时生效。 |
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个字节。 当更改集类型为CREATE时,您可以指定StackPolicyBody或StackPolicyURL参数,但不能同时指定。当更改集类型为UPDATE时,您只能指定以下参数之一:
|
StackPolicyBody | String | 否 | {"Statement":[{"Effect":"Allow","Action":"Update:*","Principal":"*","Resource":"*"}]} |
资源栈策略的结构,长度为1~16384个字节。当更改集类型为CREATE时,您可以指定StackPolicyBody或StackPolicyURL参数,但不能同时指定。当更改集类型为UPDATE时,您只能指定以下参数之一:
|
StackName | String | 否 | MyStack |
创建更改集的资源栈的名称。 必须以数字或字母开头,可包含数字、字母、短划线(-)和下划线(_),长度不超过255个字符。 此参数仅在更改集类型为CREATE时生效。 |
UsePreviousParameters | Boolean | 否 | true |
对于未传递的参数,是否使用上次传递的值。取值:
此参数仅在更改集类型为UPDATE时生效。 |
ChangeSetType | String | 否 | UPDATE |
更改集的类型。取值:
当为新资源栈创建更改集时,ROS会创建具有唯一资源栈ID的资源栈,资源栈将处于REVIEW_IN_PROGRESS状态,直到您执行更改集。 禁止使用UPDATE类型为新资源栈创建更改集,或使用CREATE类型为现有资源栈创建更改集。 |
Description | String | 否 | It is a demo. |
更改集的描述。最大长度为1024个字节。 |
ClientToken | String | 否 | 123e4567-e89b-12d3-a456-42665544**** |
保证请求的幂等性。此参数值由客户端生成,并且必须全局唯一。 长度最大为64个字符,可包含英文字符、数字、短划线(-)和下划线(_)。 更多详情,请参见如何保证幂等性。 |
--TemplateURL | String | 否 | oss://ros/template/demo |
包含模板主体的文件的位置。 URL必须指向位于Web服务器(HTTP或HTTPS)或阿里云OSS存储桶(例如:oss://ros/template/demo、oss://ros/template/demo?RegionId=cn-hangzhou)中的模板,模板最大值为524,288个字节。 说明 如果OSS地域未指定,默认与接口参数RegionId相同。
您可以指定TemplateBody或TemplateURL参数,但不能同时指定。 URL最大长度为1024个字节。 |
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)中的策略,策略文件最长为16,384个字节。 说明 OSS地域如未指定,默认与接口参数RegionId相同。
您可以指定参数StackPolicyBody或StackPolicyURL,但不能同时指定。 URL最大长度为1350个字节。 如果要更新受保护的资源,请在更新期间指定临时覆盖资源栈策略。如果未指定资源栈策略,则将使用与资源栈关联的当前策略。此参数仅在更改集类型为UPDATE时生效。您只能指定以下参数之一:
|
TemplateBody | String | 否 | {"ROSTemplateFormatVersion":"2015-09-01"} |
模板主体的结构。长度为1~524288个字节。 如果长度较大,建议通过HTTP POST+Body Param的方式,将参数放在请求体中进行传递,避免URL过长而导致请求失败。 您必须指定参数TemplateBody或TemplateURL,但不能同时指定。 |
TimeoutInMinutes | Long | 否 | 12 |
资源栈状态变为CREATE_FAILED或UPDATE_FAILED之前可以经过的时间量。 当更改集类型为CREATE时,此参数为必选参数;当更改集类型为UPDATE时,此参数为可选参数。
|
DisableRollback | Boolean | 否 | false |
当创建资源栈失败时,是否禁用回滚策略。 取值:
此参数仅在更改集类型为CREATE时生效。 |
StackPolicyDuringUpdateBody | String | 否 | {"Statement":[{"Effect":"Allow","Action":"Update:*","Principal":"*","Resource":"*"}]} |
临时覆盖资源栈策略的结构。长度为1~16384个字节。 如果要更新受保护资源,请在此更新期间指定临时覆盖资源栈策略,如未指定,则将使用与资源栈关联的当前策略。 此参数仅在更改集类型为UPDATE时生效,您只能指定以下参数之一:
|
NotificationURLs.N | RepeatList | 否 | http://example.com/ros-notify |
接收资源栈事件的URL回调地址。目前仅支持HTTP POST。
说明 IN_PROGRESS状态不会通知。
无论资源栈是否定义了Outputs都会进行通知。通知的内容示例如下:
|
RamRoleName | String | 否 | test-role |
RAM角色名称。ROS会扮演该角色创建资源栈,使用角色的凭证代表用户进行接口调用。 ROS始终将此角色用于资源栈上将进行的操作。只要用户有权在资源栈上进行操作,即使用户无权使用角色,ROS也会使用此角色,确保角色授予最少的权限。 如果用户未指定该值,ROS将使用以前与资源栈关联的角色。如果没有可用角色,ROS将使用从您的用户凭证中生成的临时凭证。 RAM角色名称最大长度为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
查询更改集信息。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | GetChangeSet | 要执行的操作,取值:GetChangeSet。 |
--ChangeSetId | String | 是 | 1f6521a4-05af-4975-afe9-bc4b45ad**** |
更改集ID。 |
RegionId | String | 是 | cn-hangzhou |
更改集所属的地域ID。您可以调用DescribeRegions查询最新的阿里云地域列表。DescribeRegions详情,请参见DescribeRegions。 |
--ShowTemplate | Boolean | 否 | true |
是否获取模板。 默认值:false。 |
请求示例
aliyun ros GetChangeSet --ChangeSetId 1f6521a4-05af-4975-afe9-bc4b45ad**** --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": "1f6521a4-05af-4975-afe9-bc4b45ad****",
"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
删除更改集。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | DeleteChangeSet |
要执行的操作,取值:DeleteChangeSet。 |
RegionId | String | 是 | cn-hangzhou |
更改集所属的地域ID。您可以调用DescribeRegions查询最新的阿里云地域列表。DescribeRegions详情,请参见DescribeRegions。 |
--ChangeSetId | String | 是 | 1f6521a4-05af-4975-afe9-bc4b45ad**** |
更改集ID。 |
请求示例
aliyun ros DeleteChangeSet --ChangeSetId 1f6521a4-05af-4975-afe9-bc4b45ad****
正常返回示例
{
"RequestId":"A74B9A63-C40A-41B9-9CCE-E4757E48FFA0"
}
ExecuteChangeSet
执行更改集。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | ExecuteChangeSet |
要执行的操作,取值:ExecuteChangeSet。 |
RegionId | String | 是 | cn-hangzhou |
更改集所属的地域ID。您可以调用DescribeRegions查询最新的阿里云地域列表。DescribeRegions详情,请参见DescribeRegions。 |
--ChangeSetId | String | 是 | 1f6521a4-05af-4975-afe9-bc4b45ad**** |
更改集ID。 |
请求示例
aliyun ros ExecuteChangeSet --ChangeSetId 1f6521a4-05af-4975-afe9-bc4b45ad****
正常返回示例
{
"RequestId":"0A46C1A6-6823-43A7-8EF1-D8950DCF29D8"
}
ListChangeSets
查询更改集列表。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | ListChangeSets |
要执行的操作,取值:ListChangeSets。 |
RegionId | String | 是 | cn-hangzhou |
更改集所属的地域ID。您可以调用DescribeRegions查询最新的阿里云地域列表。DescribeRegions详情,请参见DescribeRegions。 |
--StackId | String | 是 | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** |
资源栈ID。 |
ChangeSetName.N | RepeatList | 否 | MyChangeSet |
更改集的名称。N的最大值为5。支持使用星号(*)进行模糊搜索。 |
Status.N | RepeatList | 否 | CREATE_COMPLETE |
更改集的状态。N的最大值为5。取值:
|
ExecutionStatus.N | RepeatList | 否 | AVAILABLE |
更改集的执行状态。N的最大值为5。取值:
|
PageNumber | Long | 否 | 1 |
更改集列表的页码。起始值:1。默认值:1。 |
PageSize | Long | 否 | 10 |
分页查询时设置的每页行数。取值:1~50。默认值:10。 |
ChangeSetId | String | 否 | 1f6521a4-05af-4975-afe9-bc4b45ad**** |
更改集ID。如果不需要更改集详细信息,可使用此参数代替GetChangeSet接口。 |
请求示例
aliyun ros ListChangeSets --StackId 4a6c9851-3b0f-4f5f-b4ca-a14bf691****
正常返回示例
{
"PageNumber":1,
"TotalCount":1,
"PageSize":10,
"RequestId":"24AA105D-6AFB-4EBD-923A-DC3A5B10D62A",
"ChangeSets":[
{
"ExecutionStatus":"AVAILABLE",
"Status":"CREATE_COMPLETE",
"Description":"It is a demo.",
"ChangeSetId":"1f6521a4-05af-4975-afe9-bc4b45ad****",
"StackId":"a6c9851-3b0f-4f5f-b4ca-a14bf691****",
"RegionId":"cn-beijing",
"CreateTime":"2019-09-05T14:39:31",
"ChangeSetName":"MyChangeSet",
"ChangeSetType":"UPDATE",
"StackName":"MyStack"
}
]
}