如果您需要根據業務變動需求與策略自動增加或減少指定類型的執行個體數量,則可以通過配置伸縮組來自動調整您的業務計算能力(即執行個體數量)。如果當前伸縮組屬性不再滿足業務需求,則您可以調用API ModifyScalingGroup修改伸縮組屬性(例如最大執行個體數、最小執行個體數或期望執行個體數等屬性),避免重新建立伸縮組並重新設定相關屬性,節省了時間和資源成本。
介面說明
- 不支援修改以下參數:
- RegionId
-
LoadBalancerId
說明 如果需要修改Server Load Balancer執行個體,請使用AttachLoadBalancers和DetachLoadBalancers介面。 -
DBInstanceId
說明 如果需要修改RDS執行個體,請使用AttachDBInstances和DetachDBInstances介面。
- 當伸縮組的狀態為Active或Inactive時才能調用該介面。
- 啟用新的伸縮配置不會影響通過早前伸縮配置建立並正在啟動並執行ECS執行個體或ECI執行個體。
- 如果修改了MaxSize,導致當前伸縮組的ECS或ECI執行個體數超過MaxSize,則伸縮組會自動移出ECS執行個體或ECI執行個體,使得伸縮組的ECS或ECI執行個體數等於MaxSize。
- 如果伸縮組修改了MinSize,導致當前伸縮組的ECS或ECI執行個體數低於MinSize,則伸縮組會自動加入ECS執行個體或ECI執行個體,使得伸縮組的ECS或ECI執行個體數等於MinSize。
- 如果伸縮組設定了DesiredCapacity時,修改了DesiredCapacity,導致當前伸縮組的ECS或ECI執行個體數與DesiredCapacity不一致,則伸縮組會自動加入或移除ECS執行個體或ECI執行個體,使得伸縮組的ECS或ECI執行個體數等於DesiredCapacity。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
請求參數
|
名稱 |
類型 |
是否必選 |
樣本值 |
描述 |
| Action | String | 是 | ModifyScalingGroup | 系統規定參數。取值:ModifyScalingGroup。 |
| ScalingGroupId | String | 是 | asg-bp1ffogfdauy0jw0**** | 待修改伸縮組的ID。 |
| ScalingGroupName | String | 否 | scalinggroup**** | 伸縮組的名稱,同一地區下伸縮組名稱唯一。長度為2~64個字元,以數字、大小英文字母或中文開頭,可以包含數字、底線(_)、短劃線(-)和半形句號(.)。 |
| MinSize | Integer | 否 | 1 | 伸縮組內ECS執行個體或ECI執行個體台數的最小值,當伸縮組內ECS或ECI執行個體數小於 說明 MinSize的值必須小於或等於MaxSize的值。 |
| MaxSize | Integer | 否 | 99 | 伸縮組內ECS執行個體或ECI執行個體台數的最大值,當伸縮組內ECS或ECI執行個體數大於 MaxSize的取值範圍和Auto Scaling使用方式有關,請前往配額中心查看單個伸縮組可以設定的組內最大執行個體數對應的配額值。 例如,如果單個伸縮組可以設定的組內最大執行個體數對應的配額值為2000,則 |
| DefaultCooldown | Integer | 否 | 600 | 一次伸縮活動(添加或移出ECS執行個體或ECI執行個體)結束後的一段冷卻時間。取值範圍:0~86400,單位:秒。 冷卻時間內,該伸縮組不執行其他的伸縮活動,僅針對CloudMonitor警示任務觸發的伸縮活動有效。 |
| RemovalPolicy.1 | String | 否 | OldestScalingConfiguration | 指定移出ECS執行個體的第一段伸縮組策略。取值範圍:
說明 OldestScalingConfiguration中提到的伸縮配置泛指組內執行個體配置資訊來源,包括伸縮配置和啟動模板。CustomPolicy僅支援設定為首位移除策略,當指定CustomPolicy需同時指定CustomPolicyARN參數。 |
| RemovalPolicy.2 | String | 否 | NewestInstance | 指定移出ECS執行個體的第二段伸縮組策略。取值範圍:
|
| RemovalPolicy.3 | String | 否 | OldestInstance | 指定移出ECS執行個體的第三段伸縮組策略。取值範圍:
說明 OldestScalingConfiguration中提到的伸縮配置泛指組內執行個體配置資訊來源,包括伸縮配置和啟動模板。 |
| ActiveScalingConfigurationId | String | 否 | asc-bp17pelvl720x5ub**** | 伸縮組內生效的伸縮配置的ID。 |
| HealthCheckType | String | 否 | ECS | 伸縮組的健全狀態檢查方式。取值範圍:
預設值:ECS。 說明 如果需要同時開啟執行個體健全狀態檢查和負載平衡健全狀態檢查,請使用 HealthCheckTypes參數。 |
| LaunchTemplateId | String | 否 | lt-m5e3ofjr1zn1aw7**** | 執行個體啟動模板ID,用於指定伸縮組從執行個體啟動模板擷取啟動配置資訊。 |
| LaunchTemplateVersion | String | 否 | Default | 執行個體啟動模板的版本。取值範圍:
|
| OnDemandBaseCapacity | Integer | 否 | 30 | 伸縮組所需要按量執行個體個數的最小值,取值範圍:0~1000。當按量執行個體個數少於該值時,將優先建立按量執行個體。 當 |
| OnDemandPercentageAboveBaseCapacity | Integer | 否 | 20 | 伸縮組滿足最小按量執行個體數(OnDemandBaseCapacity)要求後,超出的執行個體中按量執行個體應占的比例,取值範圍:0~100。 當 |
| SpotInstanceRemedy | Boolean | 否 | true | 是否開啟補齊搶佔式執行個體。開啟後,當收到搶佔式執行個體將被回收的系統訊息時,伸縮組將嘗試建立新的執行個體,替換掉將被回收的搶佔式執行個體。 |
| CompensateWithOnDemand | Boolean | 否 | true | 當
|
| SpotInstancePools | Integer | 否 | 5 | 指定可用執行個體規格的個數,伸縮組將按成本最低的多個規格均衡建立搶佔式執行個體。取值範圍:0~10。 當 |
| DesiredCapacity | Integer | 否 | 5 | 伸縮組內ECS執行個體或ECI執行個體的期望數量。設定該參數意味著開啟了期望執行個體數功能,伸縮組會自動將ECS執行個體或ECI執行個體數量維持在期望執行個體數。取值範圍:MaxSize≥期望執行個體數量≥MinSize。 說明 如果期望執行個體數功能關閉後又重新開啟,則您需要重新設定 DesiredCapacity值。 |
| GroupDeletionProtection | Boolean | 否 | true | 是否開啟伸縮組刪除保護。取值範圍:
|
| MultiAZPolicy | String | 否 | PRIORITY | 多可用性區域伸縮組ECS執行個體擴縮容策略。取值範圍:
|
| VSwitchIds.N | String | 否 | vsw-bp1oo2a7isyrb8igf**** | 一台或多台虛擬交換器的ID,N的取值範圍:1~5。 只有當伸縮組網路類型為VPC時,當前參數才生效。指定虛擬交換器所屬的VPC必須和伸縮組所屬的VPC相同。 虛擬交換器可以來自多個可用性區域。虛擬交換器的優先順序按照數字升序排序,1表示最高優先順序。當優先順序較高的虛擬交換器所在可用性區域無法建立ECS執行個體時,自動選擇下一優先順序的虛擬交換器建立ECS執行個體。 |
| LaunchTemplateOverride.N.InstanceType | String | 否 | ecs.c5.xlarge | 當您需要伸縮組按照執行個體規格容量進行伸縮時,請同時指定本參數和LaunchTemplateOverride.N.WeightedCapacity。 本參數用於指定執行個體規格,會覆蓋啟動模板中的執行個體規格。您可以指定N個本參數,擴充啟動模板支援N個執行個體規格。N的取值範圍:1~10。 說明 僅當LaunchTemplateId參數指定了啟動模板時,本參數生效。 InstanceType的取值範圍:在售的ECS執行個體規格,請參見執行個體規格類型系列。 |
| LaunchTemplateOverride.N.WeightedCapacity | Integer | 否 | 4 | 當您需要伸縮組按照執行個體規格容量進行伸縮時,在指定LaunchTemplateOverride.N.InstanceType後,再指定本參數。兩個參數一一對應,N需要保持一致。 本參數用於指定執行個體規格的權重,即執行個體規格的單台執行個體在伸縮組中表示的容量大小。 權重越大,滿足期望容量所需的本執行個體規格的執行個體數量越少。 由於每個執行個體規格的vCPU個數、記憶體大小等效能指標會有差異,您可以根據自身需求,給不同的執行個體規格配置不同的權重。 例如:
為滿足期望容量,伸縮組將為使用者擴容2台ecs.c5.xlarge執行個體。 說明 擴容時伸縮組的容量不得超過最大容量(MaxSize)與執行個體規格的最大權重之和。 WeightedCapacity的取值範圍:1~500。 |
| LaunchTemplateOverride.N.SpotPriceLimit | Float | 否 | 0.025 | 本參數用於指定執行個體啟動模板覆蓋規格(即 說明 僅當 LaunchTemplateId參數指定了啟動模板時,該參數才生效。 |
| AzBalance | Boolean | 否 | false | 伸縮組的容量是否在多個可用性區域間均衡分布(僅當
預設值:false。 |
| AllocationStrategy | String | 否 | priority | 容量分配策略,決定了伸縮組如何選擇可用的執行個體規格類型滿足容量。容量分布策略同時對按量和搶佔式容量生效(僅當
預設值:priority。 |
| SpotAllocationStrategy | String | 否 | lowestPrice | 搶佔式容量分布策略。您可以通過該參數單獨指定搶佔式容量的分布策略(僅當
預設值:priority。 |
| MaxInstanceLifetime | Integer | 否 | null | 執行個體在伸縮組中存活的最大時間。單位為秒。 取值範圍:0或 預設值:null。 說明 ECI類型的伸縮組或停機不收費的伸縮組不支援設定該參數。 |
| CustomPolicyARN | String | 否 | acs:fc:cn-zhangjiakou:16145688****:services/ess_custom_terminate_policy.LATEST/functions/ess_custom_terminate_policy_name | 自訂縮容策略Function函數ARN。僅當RemovalPolicies配置第一個移除策略為CustomPolicy時生效。 |
| DisableDesiredCapacity | Boolean | 否 | false | 伸縮組是否關閉期望執行個體數功能。取值範圍:
|
| ScalingPolicy | String | 否 | recycle | 指定伸縮組的回收模式。取值範圍:
ScalingPolicy指定伸縮組的回收模式,但執行個體被移出伸縮組時的具體動作,由RemoveInstances的RemovePolicy參數決定,更多資訊,請參見RemoveInstances。 |
| HealthCheckTypes.N | String | 否 | ECS | 伸縮組的健全狀態檢查方式列表。取值範圍:
預設值:ECS。 |
| StopInstanceTimeout | Integer | 否 | 60 | 縮容流程中等待ECS執行個體停機成功的逾時時間,單位為秒。 取值範圍:30~240。 說明
|
| CapacityOptions.OnDemandBaseCapacity | Integer | 否 | 30 | 已有伸縮組內所需要的按量執行個體數的最小值,當伸縮組內按量執行個體個數少於該值時,系統將優先建立按量執行個體。取值範圍:0~1000。 當 |
| CapacityOptions.OnDemandPercentageAboveBaseCapacity | Integer | 否 | 20 | 伸縮組滿足最小按量執行個體數 當 |
| CapacityOptions.CompensateWithOnDemand | Boolean | 否 | true | 當
|
| CapacityOptions.SpotAutoReplaceOnDemand | Boolean | 否 | true | 當開啟
預設值:false。 |
返回資料
名稱 |
類型 |
樣本值 |
描述 |
| RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** | 請求ID。 |
樣本
請求樣本
http(s)://ess.aliyuncs.com/?Action=ModifyScalingGroup
&ScalingGroupId=asg-bp1ffogfdauy0jw0****
&ScalingGroupName=scalinggroup****
&MinSize=1
&MaxSize=99
&DefaultCooldown=600
&RemovalPolicy.1=OldestScalingConfiguration
&RemovalPolicy.2=NewestInstance
&RemovalPolicy.3=OldestInstance
&ActiveScalingConfigurationId=asc-bp17pelvl720x5ub****
&HealthCheckType=ECS
&LaunchTemplateId=lt-m5e3ofjr1zn1aw7****
&LaunchTemplateVersion=Default
&OnDemandBaseCapacity=30
&OnDemandPercentageAboveBaseCapacity=20
&SpotInstanceRemedy=true
&CompensateWithOnDemand=true
&SpotInstancePools=5
&DesiredCapacity=5
&GroupDeletionProtection=true
&MultiAZPolicy=PRIORITY
&VSwitchIds=["vsw-bp1oo2a7isyrb8igf****"]
&LaunchTemplateOverride=[{"InstanceType":"ecs.c5.xlarge","WeightedCapacity":4,"SpotPriceLimit":0.025}]
&AzBalance=false
&AllocationStrategy=priority
&SpotAllocationStrategy=lowestPrice
&CustomPolicyARN=acs:fc:cn-zhangjiakou:16145688****:services/ess_custom_terminate_policy.LATEST/functions/ess_custom_terminate_policy_name
&DisableDesiredCapacity=false
&ScalingPolicy=recycle
&HealthCheckTypes=["ECS"]
&StopInstanceTimeout=60
&CapacityOptions={"OnDemandBaseCapacity":30,"OnDemandPercentageAboveBaseCapacity":20,"CompensateWithOnDemand":true,"SpotAutoReplaceOnDemand":true}
&公用請求參數
正常返回樣本
XML格式
HTTP/1.1 200 OK
Content-Type:application/xml
<ModifyScalingGroupResponse>
<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
</ModifyScalingGroupResponse>
JSON格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
HttpCode |
錯誤碼 |
錯誤資訊 |
描述 |
404 |
InvalidScalingGroupId.NotFound |
The specified scaling group does not exist. |
帳號下不存在指定的伸縮組。 |
400 |
InvalidScalingGroupName.Duplicate |
The specified value of parameter parameter nameis duplicated. |
伸縮組名已存在。 |
404 |
InvalidScalingConfigurationId.NotFound |
The specified scaling configuration does not exist. |
伸縮組中不存在指定的伸縮配置。 |
400 |
InvalidScalingConfigurationId.InstanceTypeMismatch |
The specified scaling configuration and existing active scaling configuration have different instance type. |
指定的伸縮配置的執行個體規格與當前生效的伸縮配置的執行個體規格不匹配。 |
400 |
InvalidParameter.Conflict |
The value of parameter parameter nameand parameter parameter nameare confilict. |
指定的MinSize大於MaxSize。 |
400 |
LaunchTemplateVersionSet.NotFound |
The specific version of launch template is not exist. |
不存在指定的執行個體啟動模板版本。 |
400 |
LaunchTemplateSet.NotFound |
The specified launch template set is not found. |
不存在指定的執行個體啟動模板。 |
400 |
TemplateMissingParameter.ImageId |
The input parameter "ImageId" that is mandatory for processing this request is not supplied. |
執行個體啟動模板指定版本缺少鏡像資訊。 |
400 |
TemplateMissingParameter.InstanceTypes |
The input parameter "InstanceTypes" that is mandatory for processing this request is not supplied. |
指定的執行個體啟動模板版本缺少執行個體規格資訊。 |
400 |
TemplateMissingParameter.SecurityGroup |
The input parameter "SecurityGroup" that is mandatory for processing this request is not supplied. |
指定的執行個體啟動模板版本缺少安全性群組資訊。 |
400 |
TemplateVersion.NotNumber |
The input parameter "LaunchTemplateVersion" is supposed to be a string representing the version number. |
指定的執行個體啟動模板固定版本號碼應該是數字。 |