全部產品
Search
文件中心

Auto Scaling:ModifyScalingGroup

更新時間:Jan 14, 2025

如果您需要根據業務變動需求與策略自動增加或減少指定類型的執行個體數量,則可以通過配置伸縮組來自動調整您的業務計算能力(即執行個體數量)。如果當前伸縮組屬性不再滿足業務需求,則您可以調用API ModifyScalingGroup修改伸縮組屬性(例如最大執行個體數、最小執行個體數或期望執行個體數等屬性),避免重新建立伸縮組並重新設定相關屬性,節省了時間和資源成本。

介面說明

  • 不支援修改以下參數:
  • 當伸縮組的狀態為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時,Auto Scaling會自動建立ECS執行個體或ECI執行個體。

說明 MinSize的值必須小於或等於MaxSize的值。
MaxSize Integer 99

伸縮組內ECS執行個體或ECI執行個體台數的最大值,當伸縮組內ECS或ECI執行個體數大於MaxSize時,Auto Scaling會自動移出ECS執行個體或ECI執行個體。

MaxSize的取值範圍和Auto Scaling使用方式有關,請前往配額中心查看單個伸縮組可以設定的組內最大執行個體數對應的配額值。

例如,如果單個伸縮組可以設定的組內最大執行個體數對應的配額值為2000,則MaxSize的取值範圍為0~2000。

DefaultCooldown Integer 600

一次伸縮活動(添加或移出ECS執行個體或ECI執行個體)結束後的一段冷卻時間。取值範圍:0~86400,單位:秒。

冷卻時間內,該伸縮組不執行其他的伸縮活動,僅針對CloudMonitor警示任務觸發的伸縮活動有效。

RemovalPolicy.1 String OldestScalingConfiguration

指定移出ECS執行個體的第一段伸縮組策略。取值範圍:

  • OldestInstance:移出最早加入伸縮組的ECS執行個體。
  • NewestInstance:移出最新加入伸縮組的ECS執行個體。
  • OldestScalingConfiguration:移出最早伸縮配置建立的ECS執行個體。
  • CustomPolicy:基於自訂縮容策略Function函數移除ECS執行個體。
說明 OldestScalingConfiguration中提到的伸縮配置泛指組內執行個體配置資訊來源,包括伸縮配置和啟動模板。CustomPolicy僅支援設定為首位移除策略,當指定CustomPolicy需同時指定CustomPolicyARN參數。
RemovalPolicy.2 String NewestInstance

指定移出ECS執行個體的第二段伸縮組策略。取值範圍:

  • OldestInstance:移出最早加入伸縮組的ECS執行個體。
  • NewestInstance:移出最新加入伸縮組的ECS執行個體。
  • OldestScalingConfiguration:移出最早伸縮配置建立的ECS執行個體。

    說明 OldestScalingConfiguration中提到的伸縮配置泛指組內執行個體配置資訊來源,包括伸縮配置和啟動模板。

RemovalPolicy.3 String OldestInstance

指定移出ECS執行個體的第三段伸縮組策略。取值範圍:

  • OldestInstance:移出最早加入伸縮組的ECS執行個體。
  • NewestInstance:移出最新加入伸縮組的ECS執行個體。
  • OldestScalingConfiguration:移出最早伸縮配置建立的ECS執行個體。
說明 OldestScalingConfiguration中提到的伸縮配置泛指組內執行個體配置資訊來源,包括伸縮配置和啟動模板。
ActiveScalingConfigurationId String asc-bp17pelvl720x5ub****

伸縮組內生效的伸縮配置的ID。

HealthCheckType String ECS

伸縮組的健全狀態檢查方式。取值範圍:

  • NONE:不做健全狀態檢查。
  • ECS:對伸縮組內的執行個體做健全狀態檢查(ECS類型和ECI類型的伸縮組均使用本取值開啟執行個體健全狀態檢查)。
  • LOAD_BALANCER: 根據負載平衡(暫不支援CLB負載平衡類型)健全狀態檢查結果判斷執行個體健康狀態。

預設值:ECS。

說明 如果需要同時開啟執行個體健全狀態檢查和負載平衡健全狀態檢查,請使用HealthCheckTypes參數。
LaunchTemplateId String lt-m5e3ofjr1zn1aw7****

執行個體啟動模板ID,用於指定伸縮組從執行個體啟動模板擷取啟動配置資訊。

LaunchTemplateVersion String Default

執行個體啟動模板的版本。取值範圍:

  • 固定的模板版本號碼。
  • Default:始終使用模板預設版本。
  • Latest:始終使用模板最新版本。
OnDemandBaseCapacity Integer 30

伸縮組所需要按量執行個體個數的最小值,取值範圍:0~1000。當按量執行個體個數少於該值時,將優先建立按量執行個體。

MultiAZPolicy參數取值為COMPOSABLE策略時,預設值為0。

OnDemandPercentageAboveBaseCapacity Integer 20

伸縮組滿足最小按量執行個體數(OnDemandBaseCapacity)要求後,超出的執行個體中按量執行個體應占的比例,取值範圍:0~100。

MultiAZPolicy參數取值為COMPOSABLE策略時,預設值為100。

SpotInstanceRemedy Boolean true

是否開啟補齊搶佔式執行個體。開啟後,當收到搶佔式執行個體將被回收的系統訊息時,伸縮組將嘗試建立新的執行個體,替換掉將被回收的搶佔式執行個體。

CompensateWithOnDemand Boolean true

CreateScalingGroup介面的MultiAZPolicy取值為COST_OPTIMIZED時,如果因價格、庫存等原因無法建立足夠的搶佔式執行個體,是否允許自動嘗試建立按量執行個體滿足ECS執行個體數量要求。取值範圍:

  • true:允許。
  • false:不允許。
SpotInstancePools Integer 5

指定可用執行個體規格的個數,伸縮組將按成本最低的多個規格均衡建立搶佔式執行個體。取值範圍:0~10。

MultiAZPolicy參數取值為COMPOSABLE策略時,預設值為2。

DesiredCapacity Integer 5

伸縮組內ECS執行個體或ECI執行個體的期望數量。設定該參數意味著開啟了期望執行個體數功能,伸縮組會自動將ECS執行個體或ECI執行個體數量維持在期望執行個體數。取值範圍:MaxSize≥期望執行個體數量≥MinSize。

說明 如果期望執行個體數功能關閉後又重新開啟,則您需要重新設定DesiredCapacity值。
GroupDeletionProtection Boolean true

是否開啟伸縮組刪除保護。取值範圍:

  • true:開啟伸縮組刪除保護,此時不能刪除該伸縮組。
  • false:關閉伸縮組刪除保護。
MultiAZPolicy String PRIORITY

多可用性區域伸縮組ECS執行個體擴縮容策略。取值範圍:

  • PRIORITY:根據虛擬交換器(VSwitchIds.N)的優先順序進行擴縮容。Auto Scaling優先在優先順序最高的交換器所在可用性區域嘗試擴縮容,如果無法擴縮容,則自動在下一優先順序的交換器所在可用性區域進行擴縮容。
  • COST_OPTIMIZED:擴容時Auto Scaling按vCPU單價從低到高嘗試建立ECS執行個體,縮容時按vCPU單價從高到低嘗試移出ECS執行個體。當伸縮配置設定了搶佔式計費方式的多執行個體規格時,優先建立對應搶佔式執行個體。您可以繼續通過CompensateWithOnDemand參數,指定Auto Scaling在無法建立搶佔式執行個體時,是否自動嘗試建立隨用隨付執行個體。

    說明 COST_OPTIMIZED僅在伸縮配置設定了多執行個體規格或者選用了搶佔式執行個體的情況下生效。

  • BALANCE:在伸縮組指定的多可用性區域之間均勻分配ECS執行個體。如果由於庫存不足等原因可用性區域之間變得不平衡,您可以通過API RebalanceInstance平衡資源。
  • COMPOSABLE:是一種組合策略,您可以根據需要自主組合上述多可用性區域伸縮組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個數、記憶體大小等效能指標會有差異,您可以根據自身需求,給不同的執行個體規格配置不同的權重。

例如:

  • 當前容量:0。
  • 期望容量:6。
  • ecs.c5.xlarge規格容量:4。

為滿足期望容量,伸縮組將為使用者擴容2台ecs.c5.xlarge執行個體。

說明 擴容時伸縮組的容量不得超過最大容量(MaxSize)與執行個體規格的最大權重之和。

WeightedCapacity的取值範圍:1~500。

LaunchTemplateOverride.N.SpotPriceLimit Float 0.025

本參數用於指定執行個體啟動模板覆蓋規格(即LaunchTemplateOverride.N.InstanceType)的競價價格上限。您可以指定N個該參數,擴充啟動模板支援N個執行個體規格。N的取值範圍:1~10。

說明 僅當LaunchTemplateId參數指定了啟動模板時,該參數才生效。
AzBalance Boolean false

伸縮組的容量是否在多個可用性區域間均衡分布(僅當MultiAZPolicy參數取值為COMPOSABLE策略時生效),取值範圍:

  • true:伸縮組的容量在多個可用性區域間均衡分布。
  • false:伸縮組的容量不在多個可用性區域間均衡分布。

預設值:false。

AllocationStrategy String priority

容量分配策略,決定了伸縮組如何選擇可用的執行個體規格類型滿足容量。容量分布策略同時對按量和搶佔式容量生效(僅當MultiAZPolicy參數取值為COMPOSABLE策略時生效)。取值範圍:

  • priority:按照配置的執行個體規格的順序建立執行個體。
  • lowestPrice:按照執行個體規格單位vCpu價格從低到高建立執行個體。

預設值:priority。

SpotAllocationStrategy String lowestPrice

搶佔式容量分布策略。您可以通過該參數單獨指定搶佔式容量的分布策略(僅當MultiAZPolicy參數取值為COMPOSABLE策略時生效)。取值範圍:

  • priority:按照配置的執行個體規格的順序建立執行個體。
  • lowestPrice:按照執行個體規格單位vCpu價格從低到高建立執行個體。

預設值:priority。

MaxInstanceLifetime Integer null

執行個體在伸縮組中存活的最大時間。單位為秒。

取值範圍:0或[86400, Integer.maxValue]。其中,0表示清空MaxInstanceLifetime設定過的值(即未設定MaxInstanceLifetime值)。

預設值: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

伸縮組是否關閉期望執行個體數功能。取值範圍:

  • false:啟用期望執行個體數功能。
  • true:關閉期望執行個體數功能。

    說明 只有伸縮組當前無伸縮活動時,才能將該參數設定為true(即伸縮組的期望執行個體數功能關閉),伸縮組當前的DesiredCapacity屬性也會被清空,但伸縮組中當前的執行個體數量不發生變化。

ScalingPolicy String recycle

指定伸縮組的回收模式。取值範圍:

  • recycle:伸縮組的回收模式為停機回收模式。
  • release:伸縮組的回收模式為釋放模式。
  • forcerelease:伸縮組的回收模式為強制釋放模式。

    說明 選擇forcerelease後,在彈性收縮活動中系統會強制釋放運行中(Running)的執行個體。強制釋放執行個體相當於斷電操作,會導致該執行個體記憶體以及儲存中的臨時資料被擦除,資料無法恢複,請您謹慎選擇。

  • forcerecycle:伸縮組的回收模式為強制停機回收模式。

    說明 選擇forcerecycle後,在彈性收縮活動中系統會強制關機運行中(Running)的執行個體。強制關機相當於斷電操作,會導致該執行個體記憶體以及儲存中的臨時資料被擦除,資料無法恢複,請您謹慎選擇。

ScalingPolicy指定伸縮組的回收模式,但執行個體被移出伸縮組時的具體動作,由RemoveInstances的RemovePolicy參數決定,更多資訊,請參見RemoveInstances

HealthCheckTypes.N String ECS

伸縮組的健全狀態檢查方式列表。取值範圍:

  • NONE:不做健全狀態檢查。
  • ECS:對伸縮組內的執行個體做健全狀態檢查(ECS類型和ECI類型的伸縮組均使用本取值開啟執行個體健全狀態檢查)。
  • LOAD_BALANCER: 根據負載平衡(暫不支援負載平衡CLB類型)健全狀態檢查結果判斷執行個體健康狀態。

預設值:ECS。

StopInstanceTimeout Integer 60

縮容流程中等待ECS執行個體停機成功的逾時時間,單位為秒。

取值範圍:30~240。

說明
  • 該參數僅在 ScalingPolicy = release 模式下的縮容流程裡生效。
  • 如果設定了該參數,系統會最長等待StopInstanceTimeout時間將執行個體停機成功,逾時後無論執行個體是否成功停機都會繼續縮容。
  • 如果沒有設定該參數,系統會長時間等待執行個體停機成功,只有執行個體停機成功後才繼續縮容,停機失敗時,縮容流程會復原,縮容失敗。
  • 該參數設定為0時,表示取消該參數配置。
CapacityOptions.OnDemandBaseCapacity Integer 30

已有伸縮組內所需要的按量執行個體數的最小值,當伸縮組內按量執行個體個數少於該值時,系統將優先建立按量執行個體。取值範圍:0~1000。

MultiAZPolicy參數取值為COMPOSABLE策略時,預設值為0。

CapacityOptions.OnDemandPercentageAboveBaseCapacity Integer 20

伸縮組滿足最小按量執行個體數OnDemandBaseCapacity要求後,超出的執行個體中按量執行個體應占的比例。取值範圍:0~100。

MultiAZPolicy參數取值為COMPOSABLE策略時,預設值為100。

CapacityOptions.CompensateWithOnDemand Boolean true

CreateScalingGroup介面的MultiAZPolicy取值為COST_OPTIMIZED時,如果因價格、庫存等原因無法建立足夠的搶佔式執行個體,是否允許自動嘗試建立按量執行個體滿足ECS執行個體數量要求。取值範圍:

  • true:允許。
  • false:不允許。
CapacityOptions.SpotAutoReplaceOnDemand Boolean true

當開啟CompensateWithOnDemand後,如果按量比例超過OnDemandPercentageAboveBaseCapacity比例時,會嘗試使用spot替換按量容量。常見情境CompensateWithOnDemand因Spot庫存或價格原因導致Spot降級按量執行個體,為避免按量執行個體長時間存在,嘗試使用Spot替換多餘的按量容量。取值範圍:

  • true:允許。
  • false:不允許。

預設值: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 name

is 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 name

and parameter

parameter name

are 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.

指定的執行個體啟動模板固定版本號碼應該是數字。