通過執行偏差檢測,消除資源棧的偏差。
接口說明
使用限制:只能對偏差狀態(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。 |