通过执行偏差检测,消除资源栈的偏差。
接口说明
使用限制:只能对偏差状态(DRIFTED)的资源栈进行消除偏差。您需要先调用 DetectStackDrift 接口对资源栈进行偏差检测,然后调用 GetStackDriftDetectionStatus 接口查询资源栈偏差状态,确保资源栈处于偏差(DRIFTED)状态,最后调用 UpdateStackTemplateByResources 接口消除偏差。
本文将提供一个示例,为杭州地域资源栈 ID 为4a6c9851-3b0f-4f5f-b4ca-a14bf691****
的资源栈消除偏差。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
ros:UpdateStackTemplateByResources | update |
|
| 无 |
请求语法
POST /V2/UpdateStackTemplateByResources
GET /V2/UpdateStackTemplateByResources
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
StackId | string | 是 | 资源栈 ID。 | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** |
DryRun | boolean | 否 | 此次请求是否只预览结果,取值:
说明
建议设置 DryRun 为 true,预览修改后的模板。如果符合预期,再设置 DryRun 为 false,真正地执行修改。
| false |
RegionId | string | 是 | 资源栈所属的地域 ID。您可以调用 DescribeRegions 查看最新的阿里云地域列表。 | cn-hangzhou |
ClientToken | string | 否 | 保证请求的幂等性。 该值由客户端生成,并且必须是全局唯一的。 更多详情,请参见如何保证幂等性。 | 123e4567-e89b-12d3-a456-42665544**** |
TemplateFormat | string | 否 | 返回的模板格式,取值:
| JSON |
LogicalResourceId | array | 否 | 资源名列表,用于过滤资源。修正模板时仅涉及列表中的资源。默认修正所有有偏差的资源。 如果被修正的列表中包含偏差状态为 DELETED 的资源,为了确保修正后模板的正确性,可能会对列表之外但引用了被删除资源的资源进行调整。 | |
string | 否 | 资源名列表,用于过滤资源。修正模板时仅涉及列表中的资源。默认修正所有有偏差的资源。 如果被修正的列表中包含偏差状态为 DELETED 的资源,为了确保修正后模板的正确性,可能会对列表之外但引用了被删除资源的资源进行调整。 | WebServer |
关于公共请求参数的详情,请参见公共参数。
返回参数
示例
正常返回示例
JSON
格式
{
"RequestId": "B288A0BE-D927-4888-B0F7-B35EF84B6E6F",
"NewTemplateBody": "{\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\", \\\"Resources\\\": {\\\"Vpc\\\": {\\\"Type\\\": \\\"ALIYUN::ECS::VPC\\\", \\\"Properties\\\": {\\\"VpcName\\\": \\\"test\\\", \\\"CidrBlock\\\": \\\"192.168.0.0/16\\\", \\\"Description\\\": \\\"test2\\\"}}}, \\\"Outputs\\\": {\\\"VpcId\\\": {\\\"Value\\\": {\\\"Fn::GetAtt\\\": [\\\"Vpc\\\", \\\"VpcId\\\"]}}}}",
"OldTemplateBody": "{\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\", \\\"Resources\\\": {\\\"Vpc\\\": {\\\"Type\\\": \\\"ALIYUN::ECS::VPC\\\", \\\"Properties\\\": {\\\"VpcName\\\": \\\"test\\\", \\\"CidrBlock\\\": \\\"192.168.0.0/16\\\", \\\"Description\\\": \\\"test1\\\"}}}, \\\"Outputs\\\": {\\\"VpcId\\\": {\\\"Value\\\": {\\\"Fn::GetAtt\\\": [\\\"Vpc\\\", \\\"VpcId\\\"]}}}}"
}
错误码
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|
HTTP | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | StackDriftDetectionNotAvailable | There is no complete drift detection for stack ({ID}). | 资源栈没有成功完成过的偏差。ID 为资源栈 ID。 |
400 | StackAlreadyInSync | This is not need to correct stack drifts, stack ({ID}) is already in sync. | 没有必要对资源栈模板进行修正,因为没有偏差。ID 为资源栈 ID。 |
400 | CorrectStackDriftsFailure | {reason} | 无法对资源栈进行修正。reason 为原因。 |
404 | StackNotFound | The Stack ({name}) could not be found. | 资源栈不存在。name 为资源栈名称或 ID。 |
404 | ResourceNotFound | The Resource ({name}) could not be found in Stack {stack}. | 资源栈中不存某资源。name 为资源名,stack 为资源栈名称或 ID。 |