如果當前伸縮組狀態為啟用狀態,且伸縮組內不存在執行中的伸縮活動,您可以調用API DetachInstances從一個伸縮組移出一台或多台ECS執行個體、ECI執行個體或受管理的執行個體。
介面說明
- 調用該介面前,請確保滿足以下條件:
- 目標伸縮組必須處於啟用(Enable)狀態。
-
目標伸縮組沒有進行中的伸縮活動。
說明 目標伸縮組沒有進行中的伸縮活動時,該介面可以繞過冷卻時間(Cooldown)直接觸發伸縮活動。
- 使用該介面需注意以下事項:
- 移出ECS執行個體、ECI執行個體或受管理的執行個體之後,該執行個體可以獨立於伸縮組而單獨存在,您可以調用AttachInstances介面將ECS執行個體、ECI執行個體或受管理的執行個體再次添加到其他伸縮組。
- 調用該介面移出一台ECS執行個體、ECI執行個體或受管理的執行個體並不會停止或釋放該執行個體。
- 介面成功調用後,僅表示Auto Scaling服務接受了該介面調用的請求。可以正常觸發伸縮活動,但不能保證伸縮活動執行成功,您需要通過返回的ScalingActivityId查看伸縮活動的狀態。
- 目標伸縮組的ECS執行個體、ECI執行個體或受管理的執行個體數量減去當前移出的ECS執行個體、ECI執行個體或受管理的執行個體數量不能小於伸縮組最小執行個體數(MinSize),否則會報錯。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
請求參數
|
名稱 |
類型 |
是否必選 |
樣本值 |
描述 |
| Action | String | 是 | DetachInstances | 系統規定參數。取值:DetachInstances。 |
| ScalingGroupId | String | 是 | asg-bp1igpak5ft1flyp**** | 伸縮組的ID。 |
| DecreaseDesiredCapacity | Boolean | 否 | true | 是否修改期望執行個體數。取值範圍:
預設值:true。 |
| IgnoreInvalidInstance | Boolean | 否 | false | 從伸縮組移出一批執行個體時,是否忽略其中無效執行個體。取值範圍:
預設值:false。 |
| DetachOption | String | 否 | both | 指定是否停止使用ECS執行個體或ECI執行個體作為Server Load Balancer執行個體的後端伺服器(即將ECS執行個體或ECI執行個體移出Server Load Balancer執行個體的預設伺服器組和虛擬伺服器組),以及是否將ECS執行個體或ECI執行個體移出RDS執行個體的訪問白名單。 both:將ECS執行個體或ECI執行個體移出Server Load Balancer執行個體的預設伺服器組和虛擬伺服器組,並將ECS執行個體或ECI執行個體移出RDS執行個體的訪問白名單。 說明 伸縮組移出受管理的執行個體時不支援設定該參數項。 |
| InstanceId.N | String | 否 | i-bp109k5j3dum1ce6**** | 待移出ECS執行個體、ECI執行個體或受管理的執行個體的ID。N的取值範圍:1~20。 舉例如下所示:
|
| LifecycleHook | Boolean | 否 | false | 伸縮組移出ECS執行個體或ECI執行個體時,是否觸發縮容生命週期掛鈎。取值範圍:
預設值:false。 |
| ClientToken | String | 否 | 123e4567-e89b-12d3-a456-42665544**** | 保證請求等冪性。 從您的用戶端產生一個參數值,確保不同請求間該參數值唯一。只支援ASCII字元,且不能超過64個字元。更多資訊,請參見如何保證等冪性。 |
返回資料
名稱 |
類型 |
樣本值 |
描述 |
| ScalingActivityId | String | asa-bp1gbswjhjrw8tko**** | 伸縮活動的ID。 |
| RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** | 請求ID。 |
樣本
請求樣本
http(s)://ess.aliyuncs.com/?Action=DetachInstances
&ScalingGroupId=asg-bp1igpak5ft1flyp****
&DecreaseDesiredCapacity=true
&IgnoreInvalidInstance=false
&DetachOption=both
&InstanceId=["i-bp109k5j3dum1ce6****"]
&LifecycleHook=false
&ClientToken=123e4567-e89b-12d3-a456-42665544****
&公用請求參數
正常返回樣本
XML格式
HTTP/1.1 200 OK
Content-Type:application/xml
<DetachInstancesResponse>
<ScalingActivityId>asa-bp1gbswjhjrw8tko****</ScalingActivityId>
<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
</DetachInstancesResponse>
JSON格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"ScalingActivityId" : "asa-bp1gbswjhjrw8tko****",
"RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
HttpCode |
錯誤碼 |
錯誤資訊 |
描述 |
400 |
IncorrectScalingGroupStatus |
The current status of the specified scaling group does not support this action. |
目標伸縮組必須處於啟用(Enable)狀態。 |
400 |
ScalingActivityInProgress |
You cannot delete a scaling group or launch a new scaling activity while there is a scaling activity in progress for the specified scaling group. |
目標伸縮組不能有進行中的伸縮活動。 |
400 |
IncorrectLoadBalancerStatus |
The current status of the specified load balancer does not support this action. |
目標伸縮組內的Server Load Balancer執行個體必須處於運行中(Active)狀態。 |
400 |
IncorrectDBInstanceStatus |
The current status of DB instance "XXX" does not support this action. |
目標伸縮組內的RDS執行個體必須處於運行中(Running)狀態。 |
400 |
IncorrectCapacity.MinSize |
To remove the instances, the total capacity will be lesser than the MinSize. |
目標伸縮組的ECS執行個體或ECI執行個體數量減去當前移出的ECS執行個體或ECI執行個體數量不能小於伸縮組最少執行個體數(MinSize)。 |
403 |
Forbidden.Unauthorized |
A required authorization for the specified action is not supplied. |
您暫未被授權使用DetachInstances介面。 |
404 |
InvalidScalingGroupId.NotFound |
The specified scaling group does not exist. |
指定的伸縮組不存在。 |
404 |
InvalidInstanceId.NotFound |
Instance "XXX" does not exist. |
指定的ECS執行個體或ECI執行個體不存在。 |