如果當前伸縮組狀態為啟用狀態,且伸縮組內不存在執行中的伸縮活動,您可以調用API RemoveInstances從一個伸縮組刪除一台或多台不再需要的執行個體。
介面說明
- 調用本介面前請確保滿足以下條件:
- 伸縮組處於啟用(Active)狀態。
- 伸縮組中沒有正在執行的伸縮活動。
當伸縮組沒有執行中的伸縮活動時,該介面可以繞過冷卻時間(DefaultCooldown)直接執行。
- 如果一台ECS執行個體由Auto Scaling自動建立,或者您手動添加但已託管給伸縮組,從伸縮組刪除該ECS執行個體時,ECS執行個體觸發了節省停機效果或者被釋放。
- 如果一台ECS執行個體由您手動添加且未託管給伸縮組,從伸縮組刪除該ECS執行個體時,ECS執行個體不會被停止或者釋放。
- 如果當前伸縮組的執行個體數(TotalCapacity)減去該介面指定的執行個體數小於伸縮組內最小執行個體數(MinSize),則調用失敗。
調用該介面返回成功,只是表示Auto Scaling服務接受了該介面調用的請求,伸縮活動可以執行,但不代表伸縮活動能夠執行成功。您需要通過返回的ScalingActivityId查看該伸縮活動的執行狀態。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
請求參數
|
名稱 |
類型 |
是否必選 |
樣本值 |
描述 |
| Action | String | 是 | RemoveInstances | 系統規定參數。取值:RemoveInstances。 |
| ScalingGroupId | String | 是 | asg-bp18p2yfxow2dloq**** | 伸縮組的ID。 |
| RemovePolicy | String | 否 | release | 指定被刪除ECS執行個體的動作。取值範圍:
預設值:release。 |
| DecreaseDesiredCapacity | Boolean | 否 | true | 是否修改期望執行個體數。取值範圍:
預設值:true。 |
| IgnoreInvalidInstance | Boolean | 否 | false | 從伸縮組刪除一批執行個體時,是否忽略其中無效的執行個體。取值範圍:
預設值:false。 |
| InstanceId.N | String | 否 | i-28wt4**** | 待刪除ECS執行個體的ID。N的取值範圍:1~20。 |
| RegionId | String | 否 | cn-qingdao | 伸縮組所屬的地區ID。 |
| ClientToken | String | 否 | 123e4567-e89b-12d3-a456-42665544**** | 保證請求等冪性。 從您的用戶端產生一個參數值,確保不同請求間該參數值唯一。只支援ASCII字元,且不能超過64個字元。更多資訊,請參見如何保證等冪性。 |
| StopInstanceTimeout | Integer | 否 | 60 | 縮容流程中等待ECS執行個體停機成功的逾時時間,單位為秒。 取值範圍:30~240。 說明
|
返回資料
名稱 |
類型 |
樣本值 |
描述 |
| ScalingActivityId | String | asa-bp175o6f6ego3r2j**** | 伸縮活動的ID。 |
| RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** | 請求ID。 |
樣本
請求樣本
http(s)://ess.aliyuncs.com/?Action=RemoveInstances
&ScalingGroupId=asg-bp18p2yfxow2dloq****
&RemovePolicy=release
&DecreaseDesiredCapacity=true
&IgnoreInvalidInstance=false
&InstanceId=["i-28wt4****"]
&RegionId=cn-qingdao
&ClientToken=123e4567-e89b-12d3-a456-42665544****
&公用請求參數
正常返回樣本
XML格式
HTTP/1.1 200 OK
Content-Type:application/xml
<RemoveInstancesResponse>
<ScalingActivityId>asa-bp175o6f6ego3r2j****</ScalingActivityId>
<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
</RemoveInstancesResponse>
JSON格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"ScalingActivityId" : "asa-bp175o6f6ego3r2j****",
"RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
HttpCode |
錯誤碼 |
錯誤資訊 |
描述 |
404 |
InvalidScalingGroupId.NotFound |
The specified scaling group does not exist. |
指定的伸縮組在該使用者帳號下不存在。 |
404 |
InvalidInstanceId.NotFound |
Instance "XXX" does not exist. |
指定的ECS執行個體在伸縮組下不存在。 |
400 |
InvalidParameter |
The specified group does not support the specified RemovePolicy. |
當前伸縮組不支援停機回收策略。 |
403 |
Forbidden.Unauthorized |
A required authorization for the specified action is not supplied. |
您未向Auto Scaling授予完整的OpenAPI介面許可權。 |
400 |
IncorrectScalingGroupStatus |
The current status of the specified scaling group does not support this action. |
指定的伸縮組未處於Active狀態。 |
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執行個體使得TotalCapacity小於MinSize。 |