首页 UpdateStackTemplateByResources

UpdateStackTemplateByResources

更新时间: 2026-06-05 06:40:57

Eliminates stack drifts by performing drift detection.

Operation description

Limits: You can eliminate only drift on stacks that have drifted. You must call the DetectStackDrift operation to perform drift detection on a stack, call the GetStackDriftDetectionStatus operation to query the drift status of the stack to make sure that the stack has drifted, and then call the UpdateStackTemplateByResources operation to eliminate drift.

In this topic, drift is eliminated for a stack whose ID is 4a6c9851-3b0f-4f5f-b4ca-a14bf691****. The stack is deployed in the China (Hangzhou) region.

Try it now

Try this API in OpenAPI Explorer, no manual signing needed. Successful calls auto-generate SDK code matching your parameters. Download it with built-in credential security for local usage.

Test

RAM authorization

The table below describes the authorization required to call this API. You can define it in a Resource Access Management (RAM) policy. The table's columns are detailed below:

  • Action: The actions can be used in the Action element of RAM permission policy statements to grant permissions to perform the operation.

  • API: The API that you can call to perform the action.

  • Access level: The predefined level of access granted for each API. Valid values: create, list, get, update, and delete.

  • Resource type: The type of the resource that supports authorization to perform the action. It indicates if the action supports resource-level permission. The specified resource must be compatible with the action. Otherwise, the policy will be ineffective.

    • For APIs with resource-level permissions, required resource types are marked with an asterisk (*). Specify the corresponding Alibaba Cloud Resource Name (ARN) in the Resource element of the policy.

    • For APIs without resource-level permissions, it is shown as All Resources. Use an asterisk (*) in the Resource element of the policy.

  • Condition key: The condition keys defined by the service. The key allows for granular control, applying to either actions alone or actions associated with specific resources. In addition to service-specific condition keys, Alibaba Cloud provides a set of common condition keys applicable across all RAM-supported services.

  • Dependent action: The dependent actions required to run the action. To complete the action, the RAM user or the RAM role must have the permissions to perform all dependent actions.

Action

Access level

Resource type

Condition key

Dependent action

ros:UpdateStackTemplateByResources

update

*stack

acs:ros:{#regionId}:{#accountId}:stack/{#stackId}

None None

Request syntax

POST /V2/UpdateStackTemplateByResources HTTP/1.1

Request parameters

Parameter

Type

Required

Description

Example

StackId

string

Yes

The ID of the stack.

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

DryRun

boolean

No

Specifies whether to only preview the corrected template in this request. Default value: false. Valid values:

  • true: returns the content of the corrected template and does not correct the template. After Resource Orchestration Service (ROS) compares the corrected template with the original template, ROS determines whether to execute the correction.

  • false: corrects the template to eliminate drift.

Note

We recommend that you set the DryRun parameter to true to preview the corrected template. If the template content meets expectations, set the DryRun parameter to false to execute the correction.

false

RegionId

string

Yes

The region ID of the stack. You can call the DescribeRegions operation to query the most recent region list.

cn-hangzhou

ClientToken

string

No

The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must make sure that it is unique among different requests.

The token can be up to 64 characters in length and can contain letters, digits, hyphens (-), and underscores (_).

For more information, see How to ensure idempotence.

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

TemplateFormat

string

No

The format of the returned template. Default value: JSON. Valid values:

  • JSON

  • YAML

JSON

LogicalResourceId

array

No

The logical ID of resource.

Vpc

string

No

The logical ID of resource N, which is used to filter resources. Template correction takes effect only for resources in the list. By default, all resources that have drifted are corrected.

If the list of corrected resources contains resources in the DELETED state, ROS may adjust the resources that are not in the list but reference the deleted resources in the list to ensure the correctness of the new template.

WebServer

For more information about common request parameters, see Common parameters.

Response elements

Element

Type

Description

Example

object

RequestId

string

The ID of the request.

B288A0BE-D927-4888-B0F7-B35EF84B6E6F

NewTemplateBody

string

The template content after correction.

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

string

The template content before correction.

{\"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 status codeError codeError messageDescription
400StackDriftDetectionNotAvailableThere is no complete drift detection for stack ({ID}).The error message returned because no drift detection has been completed on the stack. ID indicates the stack ID.
400StackAlreadyInSyncThis is not need to correct stack drifts, stack ({ID}) is already in sync.The error message returned because no drift exists and the template correction is not needed. ID indicates the stack ID.
400CorrectStackDriftsFailure{reason}The error message returned because the stack cannot be corrected. reason indicates the specific reason.
404StackNotFoundThe Stack ({name}) could not be found.The error message returned because the specified stack does not exist. name indicates the name or ID of the stack.
404ResourceNotFoundThe Resource ({name}) could not be found in Stack {stack}.The error message returned because the specified resource does not exist in the specified stack. name indicates the resource name, and stack indicates the stack name or ID.

Examples

Success response

JSON format

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

Error codes

See Error Codes for a complete list.

Release notes

See Release Notes for a complete list.

阿里云首页 资源编排 相关技术圈