修改伸缩组

最近更新时间:2024-11-13 01:09:37

我的收藏

1. 接口描述

接口请求域名: as.tencentcloudapi.com 。

本接口(ModifyAutoScalingGroup)用于修改伸缩组。

默认接口请求频率限制:20次/秒。

推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。

2. 输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数

参数名称 必选 类型 描述
Action String 公共参数,本接口取值:ModifyAutoScalingGroup。
Version String 公共参数,本接口取值:2018-04-19。
Region String 公共参数,详见产品支持的 地域列表
AutoScalingGroupId String 伸缩组ID
示例值:asg-aaaabbbb
AutoScalingGroupName String 伸缩组名称,在您账号中必须唯一。名称仅支持中文、英文、数字、下划线、分隔符"-"、小数点,最大长度不能超55个字节。
示例值:asgname
DefaultCooldown Integer 默认冷却时间,单位秒,默认值为300
示例值:300
DesiredCapacity Integer 期望实例数,大小介于最小实例数和最大实例数之间
示例值:1
LaunchConfigurationId String 启动配置ID
示例值:asc-aaaabbbb
MaxSize Integer 最大实例数,取值范围为0-2000。
示例值:1
MinSize Integer 最小实例数,取值范围为0-2000。
示例值:1
ProjectId Integer 项目ID
示例值:1
SubnetIds.N Array of String 子网ID列表
示例值:["subnet-aaaabbbb"]
TerminationPolicies.N Array of String 销毁策略,目前长度上限为1。取值包括 OLDEST_INSTANCE 和 NEWEST_INSTANCE。
  • OLDEST_INSTANCE 优先销毁伸缩组中最旧的实例。
  • NEWEST_INSTANCE,优先销毁伸缩组中最新的实例。

  • 示例值:["OLDEST_INSTANCE"]
    VpcId String VPC ID,基础网络则填空字符串。修改为具体VPC ID时,需指定相应的SubnetIds;修改为基础网络时,需指定相应的Zones。
    示例值:vpc-aaaabbbb
    Zones.N Array of String 可用区列表
    示例值:["ap-beijing-1"]
    RetryPolicy String 重试策略,取值包括 IMMEDIATE_RETRY、 INCREMENTAL_INTERVALS、NO_RETRY,默认取值为 IMMEDIATE_RETRY。部分成功的伸缩活动判定为一次失败活动。
  • IMMEDIATE_RETRY,立即重试,在较短时间内快速重试,连续失败超过一定次数(5次)后不再重试。
  • INCREMENTAL_INTERVALS,间隔递增重试,随着连续失败次数的增加,重试间隔逐渐增大,重试间隔从秒级到1天不等。
  • NO_RETRY,不进行重试,直到再次收到用户调用或者告警信息后才会重试。

  • 示例值:IMMEDIATE_RETRY
    ZonesCheckPolicy String 可用区校验策略,取值包括 ALL 和 ANY,默认取值为ANY。在伸缩组实际变更资源相关字段时(启动配置、可用区、子网)发挥作用。
  • ALL,所有可用区(Zone)或子网(SubnetId)都可用则通过校验,否则校验报错。
  • ANY,存在任何一个可用区(Zone)或子网(SubnetId)可用则通过校验,否则校验报错。


  • 可用区或子网不可用的常见原因包括该可用区CVM实例类型售罄、该可用区CBS云盘售罄、该可用区配额不足、该子网IP不足等。
    如果 Zones/SubnetIds 中可用区或者子网不存在,则无论 ZonesCheckPolicy 采用何种取值,都会校验报错。
    示例值:ALL
    ServiceSettings ServiceSettings 服务设置,包括云监控不健康替换等服务设置。
    示例值:{"ReplaceLoadBalancerUnhealthy": "false", "ReplaceMonitorUnhealthy": "false"}
    Ipv6AddressCount Integer 实例具有IPv6地址数量的配置,取值包括0、1。
    示例值:1
    MultiZoneSubnetPolicy String 多可用区/子网策略,取值包括 PRIORITY 和 EQUALITY,默认为 PRIORITY。
  • PRIORITY,按照可用区/子网列表的顺序,作为优先级来尝试创建实例,如果优先级最高的可用区/子网可以创建成功,则总在该可用区/子网创建。

  • EQUALITY:扩容出的实例会打散到多个可用区/子网,保证扩容后的各个可用区/子网实例数相对均衡。


  • 与本策略相关的注意点:
  • 当伸缩组为基础网络时,本策略适用于多可用区;当伸缩组为VPC网络时,本策略适用于多子网,此时不再考虑可用区因素,例如四个子网ABCD,其中ABC处于可用区1,D处于可用区2,此时考虑子网ABCD进行排序,而不考虑可用区1、2。

  • 本策略适用于多可用区/子网,不适用于启动配置的多机型。多机型按照优先级策略进行选择。

  • 按照 PRIORITY 策略创建实例时,先保证多机型的策略,后保证多可用区/子网的策略。例如多机型A、B,多子网1、2、3,会按照A1、A2、A3、B1、B2、B3 进行尝试,如果A1售罄,会尝试A2(而非B1)。

  • 示例值:PRIORITY
    HealthCheckType String 伸缩组实例健康检查类型,取值如下:
  • CVM:根据实例网络状态判断实例是否处于不健康状态,不健康的网络状态即发生实例 PING 不可达事件,详细判断标准可参考实例健康检查
  • CLB:根据 CLB 的健康检查状态判断实例是否处于不健康状态,CLB健康检查原理可参考健康检查

  • 示例值:CLB
    LoadBalancerHealthCheckGracePeriod Integer CLB健康检查宽限期。
    示例值:0
    InstanceAllocationPolicy String 实例分配策略,取值包括 LAUNCH_CONFIGURATION 和 SPOT_MIXED。
  • LAUNCH_CONFIGURATION,代表传统的按照启动配置模式。
  • SPOT_MIXED,代表竞价混合模式。目前仅支持启动配置为按量计费模式时使用混合模式,混合模式下,伸缩组将根据设定扩容按量或竞价机型。使用混合模式时,关联的启动配置的计费类型不可被修改。

  • 示例值:LAUNCH_CONFIGURATION
    SpotMixedAllocationPolicy SpotMixedAllocationPolicy 竞价混合模式下,各计费类型实例的分配策略。
    仅当 InstanceAllocationPolicy 取 SPOT_MIXED 时可用。
    示例值:{"BaseCapacity": 1, "CompensateWithBaseInstance": true, "OnDemandPercentageAboveBaseCapacity": 50, "SpotAllocationStrategy": "COST_OPTIMIZED"}
    CapacityRebalance Boolean 容量重平衡功能,仅对伸缩组内的竞价实例有效。取值范围:
  • TRUE,开启该功能,当伸缩组内的竞价实例即将被竞价实例服务自动回收前,AS 主动发起竞价实例销毁流程,如果有配置过缩容 hook,则销毁前 hook 会生效。销毁流程启动后,AS 会异步开启一个扩容活动,用于补齐期望实例数。

  • FALSE,不开启该功能,则 AS 等待竞价实例被销毁后才会去扩容补齐伸缩组期望实例数。

  • 示例值:false
    InstanceNameIndexSettings InstanceNameIndexSettings 实例名称序号相关设置。开启后为伸缩组内自动创建的实例名称添加递增的数字序号。
    示例值:{"BeginIndex": 0, "Enabled": true}

    3. 输出参数

    参数名称 类型 描述
    RequestId String 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。

    4. 示例

    示例1 修改伸缩组VPC子网信息

    修改指定伸缩组的VpcId和SubnetIds参数

    输入示例

    POST / HTTP/1.1
    Host: as.tencentcloudapi.com
    Content-Type: application/json
    X-TC-Action: ModifyAutoScalingGroup
    <公共请求参数>
    
    {
        "AutoScalingGroupId": "asg-ka0s0q80",
        "SubnetIds": [
            "subnet-b0vxjhot",
            "subnet-3tmerl37"
        ],
        "VpcId": "vpc-hy436tmc"
    }

    输出示例

    {
        "Response": {
            "RequestId": "c503ddc6-496c-44c9-8cec-e9f1c3f9c11c"
        }
    }

    示例2 修改伸缩组期望实例、最大实例数、最小实例数

    修改指定伸缩组的期望实例数为3,最大实例数为10,最小实例数为1

    输入示例

    POST / HTTP/1.1
    Host: as.tencentcloudapi.com
    Content-Type: application/json
    X-TC-Action: ModifyAutoScalingGroup
    <公共请求参数>
    
    {
        "AutoScalingGroupId": "asg-ka0s0q80",
        "MinSize": 1,
        "MaxSize": 10,
        "DesiredCapacity": 3
    }

    输出示例

    {
        "Response": {
            "RequestId": "b41d8d30-21d4-412c-b7f3-53041879968c"
        }
    }

    5. 开发者资源

    腾讯云 API 平台

    腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。

    API Inspector

    用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。

    SDK

    云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。

    命令行工具

    6. 错误码

    以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码

    错误码 描述
    InternalError.CallVpcError VPC接口调用失败。
    InternalError.RequestError 内部请求错误。
    InvalidParameter.ActionNotFound 无效的Action请求。
    InvalidParameter.Conflict 参数冲突,指定的多个参数冲突,不能同时存在。
    InvalidParameter.InScenario 在特定场景下的不合法参数。
    InvalidParameterValue.AssertDesiredCapacityFailed 声明的原有期望实例数和实际原有期望实例数不一致。
    InvalidParameterValue.BaseCapacityTooLarge 指定的基础容量过大,需小于等于最大实例数。
    InvalidParameterValue.CvmError CVM参数校验异常。
    InvalidParameterValue.DuplicatedSubnet 指定的子网重复。
    InvalidParameterValue.GroupNameDuplicated 伸缩组名称重复。
    InvalidParameterValue.InvalidAutoScalingGroupId 伸缩组ID无效。
    InvalidParameterValue.InvalidLaunchConfigurationId 启动配置ID无效。
    InvalidParameterValue.InvalidSubnetId 子网ID无效。
    InvalidParameterValue.LaunchConfigurationNotFound 找不到指定启动配置。
    InvalidParameterValue.LbProjectInconsistent 负载均衡器项目不一致。
    InvalidParameterValue.LimitExceeded 取值超出限制。
    InvalidParameterValue.OnlyVpc 账号仅支持VPC网络。
    InvalidParameterValue.ProjectIdNotFound 项目ID不存在。
    InvalidParameterValue.Range 取值超出指定范围。
    InvalidParameterValue.Size 伸缩组最大数量、最小数量、期望实例数取值不合法。
    InvalidParameterValue.SubnetIds 子网信息不合法。
    InvalidParameterValue.TooLong 取值过多。
    LimitExceeded 超过配额限制。
    LimitExceeded.MaxSizeLimitExceeded 最大实例数大于限制。
    LimitExceeded.MinSizeLimitExceeded 最小实例数低于限制。
    MissingParameter 缺少参数错误。
    MissingParameter.InScenario 在特定场景下缺少参数。
    ResourceNotFound.AutoScalingGroupNotFound 伸缩组不存在。
    ResourceUnavailable.ForbiddenModifyVpc 绑定负载均衡器的伸缩组禁止修改Vpc。
    ResourceUnavailable.LaunchConfigurationStatusAbnormal 启动配置状态异常。
    ResourceUnavailable.ProjectInconsistent 项目不一致。