开发者社区 问答 正文

API快速入门的流程介绍

本文介绍如何通过 Open API 创建和配置包含定时、动态、自定义、固定模式的整体伸缩方案。
创建完整的弹性伸缩方案,您需要通过以下图中所示步骤来完成(其中前三步为简易的伸缩方案):


  1. 创建伸缩组(CreateScalingGroup),配置伸缩资源的最小值(MinSize)、最大值(MaxSize)及需要关联的负载均衡实例和 RDS 实例。

  2. 创建伸缩配置(CreateScalingConfiguration),指定需要弹性伸缩的 ECS 实例的相关属性,如 ImageID、InstanceType 等。

  3. 以第二步创建的伸缩配置启用伸缩组(EnableScalingGroup)。

  4. 创建伸缩规则(CreateScalingRule),如 [backcolor=transparent]加 N 台 ECS 实例 的伸缩规则。

  5. 创建伸缩任务(CreateScheduledTask),如创建 12:00 触发第四步伸缩规则的定时任务。

  6. 创建报警任务(云监控 API PutAlarmRule),如创建 CPU 大于等于 80% 则增加一台 ECS 实例的报警任务。

展开
收起
反向一觉 2017-10-27 10:55:18 1991 分享 版权
阿里云 AI 助理回答

基于您的描述,您想了解如何通过阿里云的Open API来创建和配置一个全面的弹性伸缩方案,该方案能够涵盖定时、动态、自定义以及固定模式的伸缩需求。下面是对您提到步骤的详细说明,结合阿里云ECS(Elastic Compute Service)和ESS(Elastic Scaling Service)服务的Open API操作:

1. 创建伸缩组 (CreateScalingGroup)

首先,您需要使用CreateScalingGroup API来创建一个伸缩组。这个操作会定义基础的伸缩资源参数,包括最小实例数(MinSize)、最大实例数(MaxSize),以及与之关联的负载均衡(SLB)实例和RDS数据库实例(如果需要)。示例请求可能如下:

{
  "RegionId": "cn-hangzhou",
  "ScalingGroupName": "MyScalingGroup",
  "MinSize": 1,
  "MaxSize": 10,
  "DefaultCooldown": 300,
  "VSwitchId": "vsw-xxxxxxx",
  "LoadBalancerIds": ["lb-xxxxxx"],
  "DBInstanceIds": ["rm-xxxxx"]
}

2. 创建伸缩配置 (CreateScalingConfiguration)

接下来,通过CreateScalingConfiguration API定义ECS实例的具体配置,如镜像ID(ImageID)、实例类型(InstanceType)等。这一步是为伸缩组提供新实例的模板。

{
  "ScalingGroupId": "sg-xxxxxx",
  "ImageId": "centos_7_04_64_20G_alibase_20190107.vhd",
  "InstanceType": "ecs.s6-c1m2.large",
  "SecurityGroupId": "sg-xxxxxx",
  "InternetChargeType": "PayByTraffic",
  "InternetMaxBandwidthOut": 10,
  "KeyPairName": "mykeypair"
}

3. 启用伸缩组 (EnableScalingGroup)

确保伸缩组处于启用状态,可以通过调用EnableScalingGroup API实现,但通常在创建伸缩组时已默认启用,此步可能不需要单独操作。

4. 创建伸缩规则 (CreateScalingRule)

使用CreateScalingRule API来定义具体的伸缩动作,比如“增加N台ECS实例”。这将作为响应特定条件或手动触发的基础规则。

{
  "ScalingGroupId": "sg-xxxxxx",
  "AdjustmentType": "QuantityChangeInCapacity",
  "ScalingAdjustment": 2,
  "ScalingRuleName": "ScaleOutRule"
}

5. 创建定时任务 (CreateScheduledTask)

通过CreateScheduledTask API设置定时任务,例如每天12点执行第四步创建的伸缩规则。

{
  "ScalingGroupId": "sg-xxxxxx",
  "ScheduledAction": "ScaleOutAtNoon",
  "StartTime": "2023-04-01T12:00Z",
  "RecurrenceType": "Daily",
  "RecurrenceValue": "1",
  "LaunchTimeType": "WithSchedule",
  "ScheduledTaskName": "NoonScalingTask"
}

6. 创建报警任务 (云监控API PutAlarmRule)

最后,利用云监控服务的PutAlarmRule API创建基于指标(如CPU利用率)的报警任务,并配置当CPU利用率超过80%时自动增加一台ECS实例。

{
  "AlarmName": "CPUOverloadAlarm",
  "Namespace": "acs_ecs_dashboard",
  "MetricName": "cpu_total",
  "Period": 300,
  "EvaluationCount": 1,
  "ComparisonOperator": "GreaterThanThreshold",
  "Threshold": 80.0,
  "Statistics": "Average",
  "ActionsEnabled": true,
  "AlarmActions": ["essscalingruleid"],
  "Dimensions": [
    {
      "Name": "InstanceId",
      "Value": "i-xxxxxx"
    }
  ]
}

请注意,上述请求体仅为示例,实际使用时需替换为您的具体资源ID和服务区域等信息。此外,云监控报警规则中的AlarmActions字段应包含之前创建的伸缩规则ID,以确保报警触发时能正确执行伸缩操作。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答