为资源栈创建更改集,您可以在执行更改之前查看对应更改内容。
接口说明
使用场景
使用更改集创建资源栈
如果您想管理大量的云资源,并在资源栈创建成功之前预览资源的创建效果,您可以选择使用更改集创建资源栈。此时您需要将ChangeSetType
参数设置为 CREATE 并完成相关参数配置。关于更改集的更多信息,请参见更改集。
使用更改集更新资源栈
如果您想在更新资源之前预览该操作对资源栈的影响,您可以选择为现有资源栈创建更改集。此时您需要将 ChangeSetType 参数设置为 UPDATE 并完成相关参数配置。 关于更改集的更多信息,请参见更改集。
使用现有资源创建资源栈
如果您需要将现有的云资源添加到一个新的资源栈中进行统一管理,您可以选择使用更改集创建资源栈并完成资源导入。此时您需要将 ChangeSetType 参数设置为 IMPORT 并完成相关参数配置。关于资源导入的更多信息,请参见概览。
将现有资源导入资源栈
如果您想要将现有资源导入到一个已有资源栈中进行统一管理,您可以选择使用更改集对已有资源栈进行更新。此时您需要将 ChangeSetType 参数设置为 IMPORT 并完成相关参数配置。关于资源导入的更多信息,请参见概览。
使用限制
- 只有部分状态下的资源栈支持通过更改集更新。更多信息,请参见通过更改集更新资源栈。
- 一个资源栈最多同时存在 20 个更改集。
- 更改集只显示资源栈变化,不显示资源栈是否成功更新。
- 更改集不检查是否将超出账号限制、是否将更新不支持更新的资源、是否权限不足而无法修改资源,所有这些都将导致资源栈更新失败。如果更新失败,ROS 将尝试将您的资源回滚到原始状态。
本文以使用更改集更新资源栈为例,在杭州地域cn-hangzhou
创建一个名为MyChangeSet
的更改集,将 ID 为4a6c9851-3b0f-4f5f-b4ca-a14bf691****
的资源栈的模板更新为{"ROSTemplateFormatVersion":"2015-09-01"}
。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
ros:CreateChangeSet | create |
|
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
StackId | string | 否 | 创建更改集的资源栈的 ID。ROS 通过将此资源栈的信息与您提交的信息(例如:修改后的模板或不同的参数输入值)进行比较来生成更改集。 说明
该参数仅在更改集类型为 UPDATE 或 IMPORT 时生效。
| 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** |
StackPolicyURL | string | 否 | 包含资源栈策略的文件的位置。URL 必须指向位于 Web 服务器(HTTP 或 HTTPS)或阿里云 OSS 存储空间(例如:oss://ros/stack-policy/demo、oss://ros/stack-policy/demo?RegionId=cn-hangzhou)的策略,策略文件长为 16384 个字节。 URL 的最大长度为 1350 个字节。 说明
OSS 地域如未指定,默认与接口参数 RegionId 相同。
当更改集类型为 CREATE 时,您仅能指定 StackPolicyBody 或 StackPolicyURL 参数之一。 当更改集类型为 UPDATE 时,您仅能指定以下参数之一:
| oss://ros/stack-policy/demo |
StackPolicyBody | string | 否 | 资源栈策略的结构,长度为 1~16,384 个字节。 当更改集类型为 CREATE 时,您仅能指定 StackPolicyBody 或 StackPolicyURL 其中一个参数。 当更改集类型为 UPDATE 时,您仅能指定以下参数之一:
| {"Statement":[{"Effect":"Allow","Action":"Update:*","Principal":"*","Resource":"*"}]} |
StackName | string | 否 | 创建更改集的资源栈的名称。 说明
该参数仅在更改集类型为 CREATE 或 IMPORT 时生效。
| MyStack |
UsePreviousParameters | boolean | 否 | 对于未传递的参数,是否使用上次传递的值。取值:
说明
该参数仅在更改集类型为 UPDATE 或 IMPORT 时生效。
| true |
ChangeSetType | string | 否 | 更改集的类型。取值:
当您选择更改集类型为 CREATE 时,ROS 会为您创建新的资源栈。此时资源栈将处于 说明
| UPDATE |
Description | string | 否 | 更改集的描述。最大长度为 1024 个字节。 | It is a demo. |
RegionId | string | 是 | 更改集所属的地域 ID。 您可以调用 DescribeRegions 查看最新的阿里云地域列表。 | cn-hangzhou |
ClientToken | string | 否 | 保证请求的幂等性。该参数值由客户端生成,并且必须全局唯一。 | 123e4567-e89b-12d3-a456-42665544**** |
TemplateURL | string | 否 | 包含模板主体的文件的位置。URL 必须指向位于 Web 服务器(HTTP 或 HTTPS)或阿里云 OSS 存储空间(例如:oss://ros/template/demo、oss://ros/template/demo?RegionId=cn-hangzhou)中的模板,模板最大值为 524,288 个字节。 说明
如果 OSS 地域未指定,默认与接口参数 RegionId 相同。
您仅能指定 TemplateBody、TemplateURL 或 TemplateId 其中一个参数。 URL 最大长度为 1024 个字节。 | oss://ros/template/demo |
StackPolicyDuringUpdateURL | string | 否 | 更新资源栈策略的文件的位置。URL 必须指向位于 Web 服务器(HTTP 或 HTTPS)或阿里云 OSS 存储空间(例如:oss://ros/stack-policy/demo、oss://ros/stack-policy/demo?RegionId=cn-hangzhou)中的策略,策略文件最长为 16,384 个字节。 说明
OSS 地域如未指定,默认与接口参数 RegionId 相同。
URL 最大长度为 1350 个字节。
| oss://ros/stack-policy/demo |
TemplateBody | string | 否 | 模板主体的结构。长度为 1~524,288 个字节。如果长度较大,则建议通过 HTTP POST+Body Param 的方式,将参数放在请求体中进行传递,避免因 URL 过长而导致请求失败。 说明
您必须且仅能指定 TemplateBody、TemplateURL 或 TemplateId 其中一个参数。
| {"ROSTemplateFormatVersion":"2015-09-01"} |
TimeoutInMinutes | long | 否 | 资源栈状态变为 CREATE_FAILED 或 UPDATE_FAILED 之前可以经过的时间量。
| 12 |
DisableRollback | boolean | 否 | 当创建资源栈失败时,是否禁用回滚策略。
说明
该参数仅在更改集类型为 CREATE 或 IMPORT 时生效。
| false |
ChangeSetName | string | 是 | 更改集的名称。 说明
更改集名称在与指定资源栈关联的所有更改集中必须是唯一的。
| MyChangeSet |
StackPolicyDuringUpdateBody | string | 否 | 临时覆盖资源栈策略的结构。长度为 1~16,384 个字节。
| {"Statement":[{"Effect":"Allow","Action":"Update:*","Principal":"*","Resource":"*"}]} |
RamRoleName | string | 否 | RAM 角色名称。ROS 会扮演该角色创建资源栈,使用角色的凭证代表用户进行接口调用。 RAM 角色的更多信息,请参见资源栈角色。 | test-role |
ReplacementOption | string | 否 | 如果资源的属性发生了变化,且变化的属性不支持修改更新(资源物理 ID 不变),是否使用替换更新(删除资源,重新创建,资源物理 ID 会发生变化)。取值:
说明
修改更新的优先级高于替换更新。该参数仅在更改集类型为 UPDATE 时生效。
| Disabled |
TemplateId | string | 否 | 模板 ID。支持共享模板和私有模板。 您可以通过调用ListTemplates - 查询模板列表接口查看模板 ID。 说明
您仅能指定 TemplateBody、TemplateURL 或 TemplateId 其中一个参数。
| 5ecd1e10-b0e9-4389-a565-e4c15efc**** |
TemplateVersion | string | 否 | 模板版本。 说明
该参数仅在指定 TemplateId 时生效。
| v1 |
Parameters | array<object> | 否 | 模板中已定义的参数。 | |
object | 否 | |||
ParameterKey | string | 是 | 模板中已定义的参数的名称。如果未指定特定参数的名称和取值,则 ROS 将使用模板中指定的默认值。N 的最大值为 200。 说明
Parameters 为可选参数。若指定了 Parameters,则 Parameters.N.ParameterKey 为必选参数。
| Amount |
ParameterValue | string | 是 | 模板中已定义的参数的取值。N 的最大值为 200。 说明
Parameters 为可选参数。若指定了 Parameters,则 Parameters.N.ParameterValue 为必选参数。
| 12 |
NotificationURLs | array | 否 | 接收资源栈事件的回调地址列表。 | |
string | 否 | 接收资源栈事件的回调地址。取值:
说明
当前支持华东 1(杭州)、华东 2(上海)、华北 2(北京)、中国(香港)、华北 3(张家口)五个地域。
N 最大值为 5。资源栈的状态发生变化时,会进行通知。当资源栈启用回滚时,CREATE_FAILED(创建失败)和 UPDATE_FAILED(更新失败)不会通知,而 CREATE_ROLLBACK(创建失败回滚)和 ROLLBACK(更新失败回滚)会进行通知。IN_PROGRESS 状态不会通知。
| http://example.com/ros-notify | |
ResourcesToImport | array<object> | 否 | 待导入资源列表。 | |
object | 否 | |||
ResourceIdentifier | string | 否 | 字符串到字符串的键值映射。取值是 JSON 格式的字符串,用来标识要导入的资源。 资源的标识符属性可以通过 GetTemplateSummary 接口获取。 说明
该参数仅在更改集类型为 IMPORT 时生效。ResourcesToImport 为可选参数。若指定了 ResourcesToImport,则 ResourcesToImport.N.ResourceIdentifier 为必选参数。
| {"VpcId": "vpc-2zevx9ios******"} |
LogicalResourceId | string | 否 | 资源逻辑 ID,即模板中资源的名称。 说明
该参数仅在更改集类型为 IMPORT 时生效。ResourcesToImport 为可选参数。若指定了 ResourcesToImport,则 ResourcesToImport.N.LogicalResourceId 为必选参数。
| Vpc |
ResourceType | string | 否 | 资源的类型,需要与模板中定义的类型一致。 说明
该参数仅在更改集类型为 IMPORT 时生效。ResourcesToImport 为可选参数。若指定了 ResourcesToImport,则 ResourcesToImport.N.ResourceType 为必选参数。
| ALIYUN::ECS::VPC |
TemplateScratchId | string | 否 | 资源场景 ID,即资源纳管场景 ID。 当 ChangeSetType 取值为 IMPORT 时,该参数才有效,该参数仅支持创建新的资源栈导入。 如果您想通过资源纳管场景导入资源时,请只设置该参数,而不是模板相关参数。 您可以通过调用ListTemplateScratches - 查询资源场景列表查看资源纳管场景 ID。 | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** |
Parallelism | long | 否 | 资源最大并发数。默认为空,用户可以输入大于等于零的整数。设置资源最大并发数后,将与资源栈进行关联,影响资源栈的后续操作。 该参数仅在更改集类型为 CREATE 或 UPDATE 时生效,取值:
| 1 |
关于公共请求参数的详情,请参见公共参数。
返回参数
示例
正常返回示例
JSON
格式
{
"ChangeSetId": "e85abe0c-6528-43fb-ae93-fdf8de22****",
"RequestId": "B288A0BE-D927-4888-B0F7-B35EF84B6E6F",
"StackId": "4a6c9851-3b0f-4f5f-b4ca-a14bf691****"
}
错误码
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|---|---|
2024-01-11 | API 内部配置变更,不影响调用 | 查看变更详情 |
2023-08-15 | API 内部配置变更,不影响调用 | 查看变更详情 |
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 | StackPolicyValidationFailed | Action denied by stack policy: {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 为参数名。 |
404 | StackNotFound | The Stack ({name}) could not be found. | 资源栈不存在。name 为资源栈名称或 ID。 |
409 | ActionInProgress | Stack {name} already has an action ({action}) in progress. | 资源栈在变更中。name 为资源栈名称或 ID,action 为具体的变更操作。 |
409 | ChangeSetExists | The ChangeSet ({name}) of Stack ({stack}) already exists. | 同名更改集已存在。name 为更改集名,stack 为关联的资源栈名称或 ID。 |
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 为模板版本。 |