全部產品
Search
文件中心

Auto Scaling:RemoveInstances

更新時間:Jan 14, 2025

如果當前伸縮組狀態為啟用狀態,且伸縮組內不存在執行中的伸縮活動,您可以調用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執行個體的動作。取值範圍:

  • recycle:ECS執行個體觸發了節省停機效果。

    說明 僅在ScalingPolicyrecycle時生效。

  • release:ECS執行個體被釋放。

    CreateScalingGroup的ScalingPolicy參數指定伸縮組的回收模式,但執行個體被刪除時的具體動作,由RemoveInstances的RemovePolicy參數決定。例如:

    • ScalingPolicyrecycle,且RemovePolicyrecycle,ECS執行個體觸發了節省停機效果。
    • ScalingPolicyrecycle,且RemovePolicyrelease,ECS執行個體被釋放。
    • ScalingPolicyrelease,且RemovePolicyrecycle,ECS執行個體被釋放。
    • ScalingPolicyrelease,且RemovePolicyrelease,ECS執行個體被釋放。

預設值:release。

DecreaseDesiredCapacity Boolean true

是否修改期望執行個體數。取值範圍:

  • true:從伸縮組刪除ECS執行個體後,期望執行個體數也減少相應台數。
  • false:從伸縮組刪除ECS執行個體後,期望執行個體數不會變化。

預設值:true。

IgnoreInvalidInstance Boolean false

從伸縮組刪除一批執行個體時,是否忽略其中無效的執行個體。取值範圍:

  • true:從伸縮組中刪除一批執行個體時會忽略無效執行個體。

    如果一批執行個體中存在無效執行個體(例如執行個體狀態為加入中),並且有效執行個體被成功刪除時,伸縮活動執行狀態顯示為警告狀態,您可以從伸縮活動詳情查看無效的執行個體。

  • 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。

說明
  • 該參數值預設從伸縮群組繼承,您也可以在調用RemoveInstances時重新設定。
  • 該參數僅在 RemovePolicy = release 模式下的縮容流程裡生效。
  • 如果設定了該參數,系統會最長等待StopInstanceTimeout時間將執行個體停機成功,逾時後無論執行個體是否成功停機都會繼續縮容。
  • 如果沒有設定該參數,系統會長時間等待執行個體停機成功,只有執行個體停機成功後才繼續縮容,停機失敗時,縮容流程會復原,縮容失敗。

返回資料

名稱

類型

樣本值

描述

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。