全部产品
Search
文档中心

企业级分布式应用服务 EDAS:CreateApplicationScalingRule - 创建应用弹性伸缩规则

更新时间:Jan 08, 2024

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

调试

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

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
edas:ReadClusterRead
  • Cluster
    acs:edas:{#regionId}:{#accountId}:namespace/{#NameSpaceId}/cluster/{#ClusterId}

请求语法

POST /pop/v1/eam/scale/application_scaling_rule

请求参数

名称类型必填描述示例值
AppIdstring

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

78194c76-3dca-418e-a263-cccd1ab4****
ScalingRuleNamestring

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

cpu-trigger
ScalingRuleTypestring

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

trigger
ScalingRuleEnableboolean

是否启用弹性伸缩策略。

  • true:启用规则。

  • false:禁用规则。

true
ScalingRuleMetricstring

此参数已废弃。

1
ScalingRuleTimerstring

此参数已废弃。

1
ScalingRuleTriggerstring

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

ScalingRuleTriggerDTO{......}
ScalingBehaviourstring

配置自定义弹性行为,具体数据结构参考样例。

{ "scaleUp": { "stabilizationWindowSeconds": "0", "selectPolicy": "Max", "policies": [ { "type": "Pods", "value": 5, "periodSeconds": 15 } ] }, "scaleDown": { "stabilizationWindowSeconds": "300", "selectPolicy": "Max", "policies": [ { "type": "Percent", "value": 200, "periodSeconds": 15 } ] } }

请求参数补充说明

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;
    }
}

返回参数

名称类型描述示例值
object
Codeinteger

接口状态码。

200
Messagestring

返回信息。

success
RequestIdstring

请求唯一标识 ID。

a5281053-08e4-47a5-b2ab-5c0323de7b5a
AppScalingRuleobject

弹性伸缩策略。

UpdateTimelong

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

23212323123
CreateTimelong

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

23212323123
AppIdstring

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

78194c76-3dca-418e-a263-cccd1ab4****
LastDisableTimelong

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

23212323123
MaxReplicasinteger

此参数已废弃。

1
ScaleRuleEnabledboolean

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

  • true:启用

  • false:禁用

true
ScaleRuleTypestring

规则类型,只支持 trigger。

trigger
MinReplicasinteger

此参数已废弃。

1
ScaleRuleNamestring

弹性伸缩的策略名称。

cpu
Metricobject

此参数已废弃。

MinReplicasinteger

此参数已废弃。

1
MaxReplicasinteger

此参数已废弃。

1
Metricsobject []

此参数已废弃。

MetricTargetAverageUtilizationinteger

此参数已废弃。

1
MetricTypestring

此参数已废弃。

cpu
Triggerobject

触发器配置。

MinReplicasinteger

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

2
MaxReplicasinteger

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

122
Triggersobject []

触发器列表。

Typestring

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

cron
MetaDatastring

触发器元信息。

{"dryRun":true}
Namestring

触发器名称。

cpu
Behaviourobject

弹性行为。

ScaleUpobject

弹性扩容行为配置。

StabilizationWindowSecondsinteger

扩容冷却时间。取值范围[0, 3600],单位为秒。默认为 0 秒。

0
SelectPolicystring

弹性扩容步长策略,可选值 Max、Min、Disable。

Max
Policiesobject []

策略配置。

PeriodSecondsinteger

检查执行的周期,取值范围[0, 1800],单位为秒。

15
Typestring

策略类型,可为 Pods 或 Percent。

Pods
Valuestring

弹性行为的策略值,大于零的整数。若策略类型为 Pods,则该值表示 Pods 数量;若策略类型为 Percent,则该值表示百分比,允许超过 100%。

10
ScaleDownobject

弹性缩容行为配置。

StabilizationWindowSecondsinteger

缩容冷却时间。取值范围[0, 3600],单位为秒。默认为 300 秒。

300
SelectPolicystring

弹性缩容步长策略,可选值 Max、Min、Disable。

Max
Policiesobject []

策略配置。

PeriodSecondsinteger

检查执行的周期,取值范围[0, 1800],单位为秒。

15
Typestring

策略类型,可为 Pods 或 Percent。

Pods
Valuestring

弹性行为的策略值,大于零的整数。若策略类型为 Pods,则该值表示 Pods 数量;若策略类型为 Percent,则该值表示百分比,允许超过 100%。

10

示例

正常返回示例

JSON格式

{
  "Code": 200,
  "Message": "success",
  "RequestId": "a5281053-08e4-47a5-b2ab-5c0323de7b5a",
  "AppScalingRule": {
    "UpdateTime": 23212323123,
    "CreateTime": 23212323123,
    "AppId": "78194c76-3dca-418e-a263-cccd1ab4****",
    "LastDisableTime": 23212323123,
    "MaxReplicas": 1,
    "ScaleRuleEnabled": true,
    "ScaleRuleType": "trigger",
    "MinReplicas": 1,
    "ScaleRuleName": "cpu",
    "Metric": {
      "MinReplicas": 1,
      "MaxReplicas": 1,
      "Metrics": [
        {
          "MetricTargetAverageUtilization": 1,
          "MetricType": "cpu"
        }
      ]
    },
    "Trigger": {
      "MinReplicas": 2,
      "MaxReplicas": 122,
      "Triggers": [
        {
          "Type": "cron",
          "MetaData": "{\"dryRun\":true}",
          "Name": "cpu"
        }
      ]
    },
    "Behaviour": {
      "ScaleUp": {
        "StabilizationWindowSeconds": 0,
        "SelectPolicy": "Max",
        "Policies": [
          {
            "PeriodSeconds": 15,
            "Type": "Pods",
            "Value": "10"
          }
        ]
      },
      "ScaleDown": {
        "StabilizationWindowSeconds": 300,
        "SelectPolicy": "Max",
        "Policies": [
          {
            "PeriodSeconds": 15,
            "Type": "Pods",
            "Value": "10"
          }
        ]
      }
    }
  }
}

错误码

访问错误中心查看更多错误码。