调用CreateApplicationScalingRule接口创建应用的弹性伸缩规则。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求头

该接口使用公共请求头,无特殊请求头。请参见公共请求参数文档。

请求语法

POST /pop/v1/eam/scale/application_scaling_rule HTTP/1.1

请求参数

名称 类型 位置 是否必选 示例值 描述
AppId String Query 78194c76-3dca-418e-a263-cccd1ab4****

应用ID,可调用ListApplication接口获取。

ScalingRuleName String Query cpu-trigger

弹性伸缩策略的名称。支持以小写字母开头,允许小写字母、数字、中划线(-)组成,长度为1~32字符的字符串。

ScalingRuleType String Query trigger

弹性伸缩策略类型,仅支持trigger类型。

ScalingRuleEnable Boolean Query true

是否启用弹性伸缩策略。

  • true:启用规则。
  • false:禁用规则。
ScalingRuleMetric String Query 1

此参数已废弃。

ScalingRuleTimer String Query 1

此参数已废弃。

ScalingRuleTrigger String Query ScalingRuleTriggerDTO{......}

触发器策略。设置为ScalingRuleTriggerDTO的JSON格式,具体样式,请参见请求参数补充说明。

请求参数补充说明


public class ScalingRuleTriggerDTO {
    /**
     * 最大实例数,上限1000。
     */
    Integer maxReplicas;
    /**
     * 最小实例数,下限0。
     */
    Integer minReplicas;

    /**
     * 触发器列表,支持多个触发器。
     */
    List<Trigger> triggers;

    @Data
    @ToString
    @Builder
    @AllArgsConstructor
    @NoArgsConstructor
    public static class Trigger {
        /**
         * 触发器类型,支持cron(定时), app_metric(应用监控)。
         */
        String type;

        /**
         * 触发器名称,必须以字母开头,允许数字、字母、短划线(-)或下划线(_)组成。最大长度30个字符。
         */
        String name;

        /**
          触发器元数据,string->string的map Json,不同类型的触发器支持的元数据不同。
          1. cron
           {"period":"weekly","dryRun":"false","timerInDay":[{"atTime":"08:00","targetReplicas":2},{"atTime":"20:00","targetReplicas":1}],"timerInWeek":["Sat","Thu"]}
          * period周期:daily, weekly, monthly。
          * dryRun: false是观测并扩缩,true是仅观测。
          * timerInDay:描述每天的扩缩周期,指在什么时候开始维持多少副本数。
         * timerInWeek:cron表达式的周,比如Fri。

         2. app_metric
         {\"metricName\":\"arms_appstat.incall_QPS\",\"dryRun\":\"false\",\"targetValAvg\":\"true\",\"targetAverageValue\":\"100\"}
         
         * metricName:
              * arms_appstat.incall_QPS(qps)
              * arms_appstat.incall_rt(rt)
              * arms_appstat.system_CPU(cpu使用率)
              * arms_appstat.system_MEM(内存使用率)
         * dryRun同cron。
        * targetValAvg:true为需要进行平均,false为不需要平均, 除了qps为true,其他均为false。
        * targetAverageValue/targetValue: targetValAvg为true则为targetAverageValue,targetValAvg为false则为targetValue。
        */
        String metadata;
    }
}

返回数据

名称 类型 示例值 描述
AppScalingRule Struct

弹性伸缩策略。

AppId String 78194c76-3dca-418e-a263-cccd1ab4****

弹性伸缩策略所属应用的应用ID。

CreateTime Long 23212323123

创建弹性伸缩策略的时间戳。

LastDisableTime Long 23212323123

弹性伸缩策略最近一次被禁用的时间戳。

MaxReplicas Integer 1

此参数已废弃。

Metric Struct

此参数已废弃。

MaxReplicas Integer 1

此参数已废弃。

Metrics Array of Metric

此参数已废弃。

MetricTargetAverageUtilization Integer 1

此参数已废弃。

MetricType String cpu

此参数已废弃。

MinReplicas Integer 1

此参数已废弃。

MinReplicas Integer 1

此参数已废弃。

ScaleRuleEnabled Boolean true

弹性伸缩策略的启用状态。

  • true:启用
  • false:禁用
ScaleRuleName String cpu

弹性伸缩的策略名称。

ScaleRuleType String trigger

规则类型,只支持trigger

Trigger Struct

触发器配置。

MaxReplicas Integer 122

最大副本数,不能超过1000。

MinReplicas Integer 2

最小副本数,不能低于0。

Triggers Array of Trigger

触发器列表。

MetaData String {"dryRun":true}

触发器元信息。

Name String cpu

触发器名称。

Type String cron

触发器类型,只支持cron和app_metric。

UpdateTime Long 23212323123

更新弹性伸缩策略的时间戳。

Code Integer 200

接口状态码。

Message String success

返回信息。

RequestId String a5281053-08e4-47a5-b2ab-5c0323de7b5a

请求唯一标识ID。

示例

请求示例

POST /pop/v1/eam/scale/application_scaling_rule HTTP/1.1
公共请求头

正常返回示例

XML格式

<Message>success</Message>
<RequestId>a5281053-08e4-47a5-b2ab-5c0323de7b5a</RequestId>
<AppScalingRule>
    <ScaleRuleEnabled>true</ScaleRuleEnabled>
    <LastDisableTime>23212323123</LastDisableTime>
    <AppId>78194c76-3dca-418e-a263-cccd1ab4****</AppId>
    <MinReplicas>1</MinReplicas>
    <MaxReplicas>1</MaxReplicas>
    <CreateTime>23212323123</CreateTime>
    <UpdateTime>23212323123</UpdateTime>
    <ScaleRuleName>cpu</ScaleRuleName>
    <ScaleRuleType>trigger</ScaleRuleType>
    <Metric>
        <MinReplicas>1</MinReplicas>
        <MaxReplicas>1</MaxReplicas>
        <Metrics>
            <MetricType>cpu</MetricType>
            <MetricTargetAverageUtilization>1</MetricTargetAverageUtilization>
        </Metrics>
    </Metric>
    <Trigger>
        <MinReplicas>2</MinReplicas>
        <MaxReplicas>122</MaxReplicas>
        <Triggers>
            <Type>cron</Type>
            <MetaData>{"dryRun":true}</MetaData>
            <Name>cpu</Name>
        </Triggers>
    </Trigger>
</AppScalingRule>
<Code>200</Code>

JSON格式

{
    "Message": "success",
    "RequestId": "a5281053-08e4-47a5-b2ab-5c0323de7b5a",
    "AppScalingRule": {
        "ScaleRuleEnabled": true,
        "LastDisableTime": 23212323123,
        "AppId": "78194c76-3dca-418e-a263-cccd1ab4****",
        "MinReplicas": 1,
        "MaxReplicas": 1,
        "CreateTime": 23212323123,
        "UpdateTime": 23212323123,
        "ScaleRuleName": "cpu",
        "ScaleRuleType": "trigger",
        "Metric": {
            "MinReplicas": 1,
            "MaxReplicas": 1,
            "Metrics": {
                "MetricType": "cpu",
                "MetricTargetAverageUtilization": 1
            }
        },
        "Trigger": {
            "MinReplicas": 2,
            "MaxReplicas": 122,
            "Triggers": {
                "Type": "cron",
                "MetaData": "{\"dryRun\":true}",
                "Name": "cpu"
            }
        }
    },
    "Code": 200
}