UpdateStackTemplateByResources - 修正资源栈模板

通过执行偏差检测,消除资源栈的偏差。

接口说明

使用限制:只能对偏差状态(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:UpdateStackTemplateByResourcesupdate
  • stack
    acs:ros:{#regionId}:{#accountId}:stack/{#stackId}

请求语法

POST /V2/UpdateStackTemplateByResources

GET /V2/UpdateStackTemplateByResources

请求参数

名称类型必填描述示例值
StackIdstring

资源栈 ID。

4a6c9851-3b0f-4f5f-b4ca-a14bf691****
DryRunboolean

此次请求是否只预览结果,取值:

  • true:返回修正后的资源栈的模板的内容,并不会修改资源栈的模板。与原模板比较分析后,再判断是否要执行修正。
  • false(默认值):会直接对资源栈的模板进行修正以消除偏差。
说明 建议设置 DryRun 为 true,预览修改后的模板。如果符合预期,再设置 DryRun 为 false,真正地执行修改。
false
RegionIdstring

资源栈所属的地域 ID。您可以调用 DescribeRegions 查看最新的阿里云地域列表。

cn-hangzhou
ClientTokenstring

保证请求的幂等性。 该值由客户端生成,并且必须是全局唯一的。
长度最大为 64 个字符,可包含英文字符、数字、短划线(-)和下划线(_)。

更多详情,请参见如何保证幂等性

123e4567-e89b-12d3-a456-42665544****
TemplateFormatstring

返回的模板格式,取值:

  • JSON(默认值)
  • YAML
JSON
LogicalResourceIdarray

资源名列表,用于过滤资源。修正模板时仅涉及列表中的资源。默认修正所有有偏差的资源。

如果被修正的列表中包含偏差状态为 DELETED 的资源,为了确保修正后模板的正确性,可能会对列表之外但引用了被删除资源的资源进行调整。

string

资源名列表,用于过滤资源。修正模板时仅涉及列表中的资源。默认修正所有有偏差的资源。

如果被修正的列表中包含偏差状态为 DELETED 的资源,为了确保修正后模板的正确性,可能会对列表之外但引用了被删除资源的资源进行调整。

WebServer

关于公共请求参数的详情,请参见公共参数

返回参数

名称类型描述示例值
object
RequestIdstring

请求 ID。

B288A0BE-D927-4888-B0F7-B35EF84B6E6F
NewTemplateBodystring

修正后的模板的内容。

{\"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\"]}}}}
OldTemplateBodystring

修正前的模板的内容。

{\"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\"]}}}}

示例

正常返回示例

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错误码错误信息描述
400StackDriftDetectionNotAvailableThere is no complete drift detection for stack ({ID}).资源栈没有成功完成过的偏差。ID 为资源栈 ID。
400StackAlreadyInSyncThis is not need to correct stack drifts, stack ({ID}) is already in sync.没有必要对资源栈模板进行修正,因为没有偏差。ID 为资源栈 ID。
400CorrectStackDriftsFailure{reason}无法对资源栈进行修正。reason 为原因。
404StackNotFoundThe Stack ({name}) could not be found.资源栈不存在。name 为资源栈名称或 ID。
404ResourceNotFoundThe Resource ({name}) could not be found in Stack {stack}.资源栈中不存某资源。name 为资源名,stack 为资源栈名称或 ID。