更新已创建资源栈的资源信息。
接口说明
请求中 Parameters 和 UsePreviousParameters 取值相关。若 Parameters 中未指定模板中定义的参数:
-
当 UsePreviousParameters 取值为 false 时:如果模板中参数有默认值,则使用默认值;如果模板中参数没有默认值,则需要在 Parameters 中指定该参数。
-
当 UsePreviousParameters 取值为 true 时:如果创建资源栈时指定了该参数,则使用指定值;如果创建资源栈时未指定该参数,参数在模板中有默认值,则使用默认值。
本文将提供一个示例,将北京地域 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:UpdateStack | update |
|
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
StackId | string | 是 | 资源栈 ID。 | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** |
ClientToken | string | 否 | 保证请求的幂等性。此参数值由客户端生成,并且必须全局唯一。 | 123e4567-e89b-12d3-a456-42665544**** |
StackPolicyDuringUpdateBody | string | 否 | 临时覆盖资源栈策略主体的结构。长度为 1~16,384 个字节。
| {"Statement": [{"Effect": "Allow", "Action": "Update:*", "Principal": "*", "Resource": "*"}]} |
TimeoutInMinutes | long | 否 | 更新资源栈的超时时间。
| 10 |
TemplateBody | string | 否 | 模板主体的结构。长度为 1~524,288 个字节。 如果长度较大,则建议通过 HTTP POST+Body Param 的方式,将参数放在请求体中进行传递,避免 URL 过长而导致请求失败。 说明
您必须且仅能指定 TemplateBody、TemplateURL 或 TemplateId 其中一个参数。
| {"ROSTemplateFormatVersion": "2015-09-01"} |
StackPolicyURL | string | 否 | 包含资源栈策略的文件的位置。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 个字节。 | oss://ros-stack-policy/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 个字节。 如果要更新受保护的资源,请在更新期间指定临时覆盖资源栈策略。如果未指定资源栈策略,则将使用与资源栈关联的当前策略。此参数仅在更改集类型为 UPDATE 时生效。您只能指定以下参数之一:
| oss://ros-stack-policy/demo |
StackPolicyBody | string | 否 | 资源栈策略主体的结构,长度为 1~16,384 个字节。 说明
您仅能指定 StackPolicyBody 或 StackPolicyURL 其中一个参数。
| {"Statement": [{"Action": "Update:*", "Resource": "*", "Effect": "Allow", "Principal": "*"}]} |
UsePreviousParameters | boolean | 否 | 未传递的参数是否使用上次传递的值。 取值:
| true |
RegionId | string | 是 | 资源栈所属的地域 ID。您可以调用 DescribeRegions 查看最新的阿里云地域列表。 | cn-beijing |
DisableRollbackdeprecated | boolean | 否 | 资源栈更新失败时,是否强制回滚。 取值:
| false |
TemplateURL | string | 否 | 包含模板主体的文件的位置。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 其中一个参数。
| oss://ros-template/demo |
RamRoleName | string | 否 | RAM 角色名称。ROS 会扮演该角色创建资源栈,使用角色的凭证代表用户进行接口调用。 | test-role |
ReplacementOption | string | 否 | 是否使用替换更新。当资源属性不支持修改更新时,可以使用替换更新改变资源属性。替换更新会删除资源后重新创建资源,新资源物理 ID 会发生变化。 取值:
说明
修改更新的优先级高于替换更新。
| Disabled |
TemplateId | string | 否 | 模板 ID。支持共享模板和私有模板。 说明
您必须且仅能指定 TemplateBody、TemplateURL 或 TemplateId 其中一个参数。
| 5ecd1e10-b0e9-4389-a565-e4c15efc**** |
TemplateVersion | string | 否 | 模板版本。仅在指定 TemplateId 时生效。 | v1 |
Parameters | array<object> | 否 | 参数。 | |
object | 否 | |||
ParameterKey | string | 是 | 参数的名称。如果未指定参数的名称和取值,ROS 将使用模板中指定的默认值。 说明
Parameters 为可选参数。如果需要指定 Parameters,则 Parameters.N.ParameterKey 和 Parameters.N.ParameterValue 必须同时指定。
| Amount |
ParameterValue | string | 是 | 参数值。N 的最大值为 200。 说明
Parameters 为可选参数。如果需要指定 Parameters,则 Parameters.N.ParameterKey 和 Parameters.N.ParameterValue 必须同时指定。
| 12 |
Tags | array<object> | 否 | 资源栈的标签。 | |
object | 否 | |||
Key | string | 是 | 资源栈的标签键。 说明
Tags 为可选参数。如果需要指定 Tags,则 Tags.N.Key 必须指定。- 此标签会传递到资源栈中每个支持标签的资源中。更多信息,请参见标签传递。
| usage |
Value | string | 否 | 资源栈的标签值。 说明
此标签会传递到资源栈中每个支持标签的资源中。更多信息,请参见标签传递。
| test |
Parallelism | long | 否 | 资源最大并发数。 默认为空,用户可以输入大于等于零的整数。 说明
| 1 |
ResourceGroupId | string | 否 | 资源组 ID。 | rg-acfmxazb4ph6aiy**** |
DryRun | boolean | 否 | 此次请求是否只进行检验。取值:
说明
更新资源栈时,若没有改动:DryRun 为 false 时,会报错,错误码为 NotSupported;DryRun 为 true 时,不会报错。
| false |
DryRunOptions | array | 否 | 校验选项列表。列表最大长度为 1。 说明
仅在 DryRun 为 true 时生效。
| |
string | 否 | 校验选项。取值:
说明
该选项仅对 ROS 类型资源栈生效。
| ParameterAnalysis.ConsiderCondition |
关于公共请求参数的详情,请参见公共参数。
返回参数
示例
正常返回示例
JSON
格式
{
"RequestId": "B288A0BE-D927-4888-B0F7-B35EF84B6E6F",
"StackId": "4a6c9851-3b0f-4f5f-b4ca-a14bf691****",
"DryRunResult": {
"ParametersAllowedToBeModified": [
"param1"
],
"ParametersConditionallyAllowedToBeModified": [
"param2"
],
"ParametersUncertainlyAllowedToBeModified": [
"param3"
],
"ParametersNotAllowedToBeModified": [
"param4"
],
"ParametersCauseInterruptionIfModified": [
"param1"
],
"ParametersConditionallyCauseInterruptionIfModified": [
"param2"
],
"ParametersUncertainlyCauseInterruptionIfModified": [
"param3"
],
"ParametersCauseReplacementIfModified": [
"param5"
],
"ParametersConditionallyCauseReplacementIfModified": [
"param6"
],
"ParametersUncertainlyCauseReplacementIfModified": [
"param7"
]
}
}
错误码
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|---|---|
2024-01-11 | API 内部配置变更,不影响调用 | 查看变更详情 |
2023-07-27 | OpenAPI 入参发生变更、OpenAPI 返回结构发生变更 | 查看变更详情 |
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 为具体的变更操作。 |
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 为模板版本。 |