調用API AttachInstances將執行個體手動添加到伸縮組中,即您可以將伸縮組以外的ECS執行個體、ECI執行個體或受管理的執行個體添加到伸縮組中並提供服務,或者將伸縮組中處於節省停機狀態的ECS執行個體重新啟動變為服務狀態(運行中狀態)並在伸縮組中提供服務。
介面說明
- 調用該介面前,請確保滿足以下條件:
- 伸縮組處於Active狀態。
- 伸縮組內沒有執行中的伸縮活動。
- 加入伸縮組的ECS執行個體或ECI執行個體的限制條件包括:
- 必須與伸縮組在同一個地區。
- 必須處於Running狀態。
- 不能已加入到其他伸縮組中。
- 付費方式為訂用帳戶、隨用隨付或搶佔式執行個體。
- 如果伸縮組指定VswitchID,則不支援Classic類型的ECS執行個體或ECI執行個體加入伸縮組,也不支援其他VPC的ECS執行個體或ECI執行個體加入伸縮組。
- 如果伸縮組沒有指定VswitchID,則不支援VPC類型的ECS執行個體或ECI執行個體加入伸縮組。
- 加入伸縮組的受管理的執行個體的限制條件包括:
- 必須與伸縮組在同一個地區。
- 只能將未加入伸縮組的受管理的執行個體加入到ECS類型伸縮組中。
- 受管理的執行個體不支援配置生命週期掛鈎、關聯到負載平衡和健全狀態檢查功能。
- 受管理的執行個體加入ECS類型伸縮組後,該伸縮組不會管理受管理的執行個體的生命週期。
- 受管理的執行個體僅支援手動添加到伸縮組或手動從伸縮組移出,移出後受管理的執行個體並不會被釋放。
- 使用該介面需注意以下事項:
- 當伸縮組沒有伸縮活動正在執行時,該介面可以繞過冷卻時間(Cooldown)直接執行。
- 調用該介面返回成功,只是表示Auto Scaling服務接受了該介面調用的請求,伸縮活動可以執行,但不代表伸縮活動能夠執行成功。您需要通過返回的ScalingActivityId查看該伸縮活動的執行狀態。
- 如果該介面指定的執行個體數加上當前伸縮組的執行個體數(Total Capacity)大於最大值(MaxSize),則介面調用失敗。
- 通過該介面手動添加的ECS執行個體、ECI執行個體或受管理的執行個體不與伸縮組生效的伸縮配置進行關聯。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
請求參數
名稱 |
類型 |
是否必選 |
樣本值 |
描述 |
Action | String | 是 | AttachInstances | 系統規定參數。取值:AttachInstances。 |
ScalingGroupId | String | 是 | asg-bp18p2yfxow2dloq**** | 伸縮組的ID。 |
Entrusted | Boolean | 否 | false | 將已經存在的執行個體手動添加到伸縮組時,是否將該執行個體的生命週期託管給伸縮組。取值範圍:
說明 訂用帳戶執行個體、受管理的執行個體和伸縮組中節省停機執行個體均不支援設定該參數項。 預設值:false。 |
InstanceId.N | String | 否 | i-28wt4**** | InstanceId.N為待添加ECS執行個體、ECI執行個體、受管理的執行個體或者伸縮組中處於節省停機狀態執行個體的ID。N的取值範圍:1~20。 舉例如下所示:
說明 一次調用請求中僅支援處理一種類型的執行個體。 |
LoadBalancerWeight.N | Integer | 否 | 50 | LoadBalancerWeight.N為ECS執行個體或ECI執行個體作為Server Load Balancer執行個體後端伺服器時的權重,N的取值範圍:1~20,該參數的取值範圍:1~100。 說明 受管理的執行個體和伸縮組中節省停機執行個體均不支援設定該參數項。 預設值:50。 |
LifecycleHook | Boolean | 否 | false | 伸縮組添加執行個體時,是否觸發擴容生命週期掛鈎。取值範圍:
說明 受管理的執行個體和伸縮組中節省停機執行個體均不支援設定該參數項。 預設值:false。 |
RegionId | String | 否 | cn-qingdao | 伸縮組所屬的地區ID。 |
ClientToken | String | 否 | 123e4567-e89b-12d3-a456-42665544**** | 保證請求等冪性。 從您的用戶端產生一個參數值,確保不同請求間該參數值唯一。只支援ASCII字元,且不能超過64個字元。更多資訊,請參見如何保證等冪性。 |
IgnoreInvalidInstance | Boolean | 否 | false | 向伸縮組添加一批執行個體時,是否忽略其中無效的執行個體。取值範圍:
預設值:false。 |
返回資料
名稱 |
類型 |
樣本值 |
描述 |
ScalingActivityId | String | asa-bp1crxor24s28xf1**** | 伸縮活動的ID。 |
RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** | 請求ID。 |
樣本
請求樣本
http(s)://ess.aliyuncs.com/?Action=AttachInstances
&ScalingGroupId=asg-bp18p2yfxow2dloq****
&Entrusted=false
&InstanceId=["i-28wt4****"]
&LoadBalancerWeight=[50]
&LifecycleHook=false
&RegionId=cn-qingdao
&ClientToken=123e4567-e89b-12d3-a456-42665544****
&IgnoreInvalidInstance=false
&公用請求參數
正常返回樣本
XML
格式
HTTP/1.1 200 OK
Content-Type:application/xml
<AttachInstancesResponse>
<ScalingActivityId>asa-bp1crxor24s28xf1****</ScalingActivityId>
<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
</AttachInstancesResponse>
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"ScalingActivityId" : "asa-bp1crxor24s28xf1****",
"RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
HttpCode |
錯誤碼 |
錯誤資訊 |
描述 |
404 |
InvalidScalingGroupId.NotFound |
The specified scaling group does not exist. |
指定的伸縮組在該帳號下不存在。 |
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狀態。 |
404 |
InvalidInstanceId.NotFound |
Instance "XXX" does not exist. |
指定的ECS執行個體或ECI執行個體在該帳號下不存在。 |
400 |
InvalidInstanceId. RegionMismatch |
Instance "XXX" and the specified scaling group are not in the same Region. |
指定的ECS執行個體或ECI執行個體與伸縮組所屬的地區不匹配。 |
400 |
InvalidInstanceId.InstanceTypeMismatch |
Instance "XXX" and existing Active scaling configurations have different instance types. |
指定的ECS執行個體或ECI執行個體與伸縮配置的執行個體規格不匹配。 |
400 |
IncorrectInstanceStatus |
The current status of instance "XXX" does not support this action. |
指定的ECS執行個體或ECI執行個體未處於Running狀態。 |
400 |
InvalidInstanceId. NetworkTypeMismatch |
The network type of instance "XXX" does not support this action. |
ECS執行個體或ECI執行個體的網路類型與伸縮組的網路類型不符。 |
400 |
InvalidInstanceId.VPCMismatch |
Instance "XXX" and the specified scaling group are not in the same VPC. |
指定的伸縮組與添加的ECS執行個體或ECI執行個體不在同一個VPC當中。 |
400 |
InvalidInstanceId.InUse |
Instance "XXX" is already attached to another scaling group. |
指定的ECS執行個體或ECI執行個體已加入其它伸縮組。 |
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 |
IncorrectLoadBalancerHealthCheck |
The current health check type of specified load balancer does not support this action. |
指定的伸縮組關聯的Server Load Balancer執行個體未開啟健全狀態檢查。 |
400 |
InvalidLoadBalancerId.IncorrectInstanceNetworkType |
The network type of the instance in specified load balancer does not support this action. |
指定的Server Load Balancer執行個體含有的ECS執行個體或ECI執行個體的網路類型與伸縮組的網路類型不符。 |
400 |
InvalidLoadBalancerId.VPCMismatch |
The specified virtual switch and the instance in specified load balancer are not in the same VPC. |
指定的伸縮組的Server Load Balancer執行個體含有的ECS執行個體或ECI執行個體與VSwitchId不在同一個VPC當中。 |
400 |
IncorrectDBInstanceStatus |
The current status of DB instance "XXX" does not support this action. |
指定的伸縮組的RDS執行個體未處於Running狀態。 |
400 |
QuotaExceeded.DBInstanceSecurityIP |
Security IP quota exceeded in DB instance "XXX". |
指定的伸縮組的RDS執行個體訪問白名單的IP個數達到上限。 |
400 |
QuotaExceeded.SecurityGroupInstance |
Instance quota exceeded in the specified security group. |
指定的安全性群組已添加的ECS執行個體或ECI執行個體個數達到上限。 |
400 |
IncorrectCapacity.MaxSize |
To attach the instances, the total capacity will be greater than the MaxSize. |
加入的ECS執行個體數或ECI執行個體數使得Total Capacity超過MaxSize。 |