如果當前伸縮組狀態為啟用狀態,且伸縮組內不存在執行中的伸縮活動,您可以調用API RemoveInstances從一個伸縮組刪除一臺或多臺不再需要的實例。
接口說明
- 調用本接口前請確保滿足以下條件:
- 伸縮組處于啟用(Active)狀態。
- 伸縮組中沒有正在執行的伸縮活動。
當伸縮組沒有執行中的伸縮活動時,該接口可以繞過冷卻時間(DefaultCooldown)直接執行。
- 如果一臺ECS實例由彈性伸縮自動創建,或者您手動添加但已托管給伸縮組,從伸縮組刪除該ECS實例時,ECS實例觸發了節省停機效果或者被釋放。
- 如果一臺ECS實例由您手動添加且未托管給伸縮組,從伸縮組刪除該ECS實例時,ECS實例不會被停止或者釋放。
- 如果當前伸縮組的實例數(TotalCapacity)減去該接口指定的實例數小于伸縮組內最小實例數(MinSize),則調用失敗。
調用該接口返回成功,只是表示彈性伸縮服務接受了該接口調用的請求,伸縮活動可以執行,但不代表伸縮活動能夠執行成功。您需要通過返回的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. |
您未向彈性伸縮授予完整的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. |
指定伸縮規則所屬的伸縮組的負載均衡實例未處于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。 |