如果您需要根據業務變動需求與策略自動增加或減少指定類型的實例數量,則可以通過配置伸縮組來自動調整您的業務計算能力(即實例數量)。如果當前伸縮組屬性不再滿足業務需求,則您可以調用API ModifyScalingGroup修改伸縮組屬性(例如最大實例數、最小實例數或期望實例數等屬性),避免重新創建伸縮組并重新配置相關屬性,節省了時間和資源成本。
接口說明
- 不支持修改以下參數:
- RegionId
-
LoadBalancerId
說明 如果需要修改負載均衡實例,請使用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的取值范圍和彈性伸縮使用情況有關,請前往配額中心查看單個伸縮組可以設置的組內最大實例數對應的配額值。 例如,如果單個伸縮組可以設置的組內最大實例數對應的配額值為2000,則 |
DefaultCooldown | Integer | 否 | 600 | 一次伸縮活動(添加或移出ECS實例或ECI實例)結束后的一段冷卻時間。取值范圍:0~86400,單位:秒。 冷卻時間內,該伸縮組不執行其他的伸縮活動,僅針對云監控報警任務觸發的伸縮活動有效。 |
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。 說明
|
返回數據
名稱 |
類型 |
示例值 |
描述 |
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"]
&公共請求參數
正常返回示例
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. |
指定的實例啟動模板固定版本號應該是數字。 |