如果當前伸縮組狀態為啟用狀態,且伸縮組內不存在執行中的伸縮活動,您可以調用API DetachInstances從一個伸縮組移出一臺或多臺ECS實例、ECI實例或托管實例。
接口說明
- 調用該接口前,請確保滿足以下條件:
- 目標伸縮組必須處于啟用(Enable)狀態。
-
目標伸縮組沒有正在進行的伸縮活動。
說明 目標伸縮組沒有正在進行的伸縮活動時,該接口可以繞過冷卻時間(Cooldown)直接觸發伸縮活動。
- 使用該接口需注意以下事項:
- 移出ECS實例、ECI實例或托管實例之后,該實例可以獨立于伸縮組而單獨存在,您可以調用AttachInstances接口將ECS實例、ECI實例或托管實例再次添加到其他伸縮組。
- 調用該接口移出一臺ECS實例、ECI實例或托管實例并不會停止或釋放該實例。
- 接口成功調用后,僅表示彈性伸縮服務接受了該接口調用的請求。可以正常觸發伸縮活動,但不能保證伸縮活動執行成功,您需要通過返回的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實例作為負載均衡實例的后端服務器(即將ECS實例或ECI實例移出負載均衡實例的默認服務器組和虛擬服務器組),以及是否將ECS實例或ECI實例移出RDS實例的訪問白名單。 both:將ECS實例或ECI實例移出負載均衡實例的默認服務器組和虛擬服務器組,并將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. |
目標伸縮組內的負載均衡實例必須處于運行中(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實例不存在。 |