文档首页/ 弹性伸缩 AS/ API参考/ 应用示例/ 示例2:创建伸缩组
更新时间:2023-09-11 GMT+08:00

示例2:创建伸缩组

场景描述

本章节指导用户通过API创建伸缩组。API的调用方法请参见如何调用API

伸缩组是具有相同应用场景的实例的集合,是启停伸缩策略和进行伸缩活动的基本单位。伸缩组内定义了最大实例数、期望实例数、最小实例数、虚拟私有云、子网、负载均衡等信息。

约束限制

  • 默认最多可以创建10个伸缩组。
  • 如果伸缩组配置了负载均衡,在添加或移除实例时,会自动为实例绑定或解绑负载均衡监听器。
  • 如果伸缩组使用负载均衡健康检查方式,伸缩组中的实例需要启用负载均衡的监听端口才能通过健康检查。端口启用可在安全组中进行配置,可参考添加安全组规则进行操作。

涉及接口

创建伸缩组时,需要进行token查询,安全组列表查询,伸缩配置列表查询等操作,涉及的接口如下:

操作步骤

  1. 确定调用API鉴权时使用的token。

    1. 查询token,详情请参见获取用户Token
    2. 获取响应Header参数中X-Subject-Token对应的值。

  2. 确定待创建伸缩组使用的虚拟私有云。

    1. 查询VPC虚拟私有云列表,详情请参见查询VPC列表
    2. 根据实际需要选择虚拟私有云,并记录虚拟私有云的ID。

  1. 确定待创建伸缩组使用的安全组。

    1. 查询VPC安全组列表,详情请参见查询安全组列表
    2. 根据实际需要选择安全组,并记录安全组ID。

  1. 确定待创建伸缩组使用的子网。

    1. 根据选定的虚拟私有云ID,查询指定VPC下的子网列表,详情请参见查询子网列表
    2. 根据实际需要选择子网,并记录子网ID。

  1. 确定待创建伸缩组的伸缩配置。

    1. 查询伸缩配置列表。
      • 接口相关信息

      URI格式:GET /autoscaling-api/v1/{project_id}/scaling_configuration

      接口请求参数说明详情,请参见查询弹性伸缩配置列表

      • 请求示例

      GET: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_configuration?start_number=0&limit=10

      {endpoint}信息请从地区和终端节点获取。

      • 响应示例
        {
            "limit": 20,
            "total_number": 2,
            "start_number": 0,
            "scaling_configurations": [
                {
                    "tenant": "ce061903a53545dcaddb300093b477d2",
                    "scaling_configuration_id": "6afe46f9-7d3d-4046-8748-3b2a1085ad86",
                    "scaling_configuration_name": " config_name_1",
                    "instance_config": {
                        "disk": [
                            {
                                "size": 40,
                                "volume_type": "SATA",
                                "disk_type": "SYS"
                            },
                            {
                                "size": 100,
                                "volume_type": "SATA",
                                "disk_type": "DATA"
                            }
                        ],
                        "personality": null,
                        "instance_name": null,
                        "instance_id": null,
                        "flavorRef": "103",
                        "imageRef": "37ca2b35-6fc7-47ab-93c7-900324809c5c",
                        "key_name": "keypair01",
                        "public_ip": null,
                        "user_data": null,
                        "metadata": {},
                        "security_groups": [{
                             "id": "6c22a6c0-b5d2-4a84-ac56-51090dcc33be"
                        }],
                    },
                    "create_time": "2015-07-23T01:04:07Z"
                }
            ]
        }

    1. 根据实际需要选择伸缩配置,并记录伸缩配置ID。

  1. 确定待创建伸缩组的可用区。

    1. 查询可用域列表,详情请参见查询可用区列表
    2. 根据实际需要选择可用区,并记录可用区名称。

  1. 使用VPC和伸缩配置等参数创建弹性伸缩组。

    • 接口相关信息

      URL格式:POST /autoscaling-api/v1/{project_id}/scaling_group

      接口请求参数说明详情,请参见创建弹性伸缩组

    • 请求示例

      POST: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group

      {endpoint}信息请从地区和终端节点获取。

      Body:

      {
      "scaling_group_name": "GroupNameTest",
      "scaling_configuration_id": "47683a91-93ee-462a-a7d7-484c006f4440",
      "desire_instance_number": 0,
      "min_instance_number": 0,
      "max_instance_number": 10,
      "health_periodic_audit_method": "NOVA_AUDIT",
      "vpc_id": "a8327883-6b07-4497-9c61-68d03ee193a",
      "available_zones": ["XXXa","XXXb"],
      "networks": [
              {
                   "id": "3cd35bca-5a10-416f-8994-f79169559870"
               }
      ],
      "enterprise_project_id": "c92b1a5d-6f20-43f2-b1b7-7ce35e58e413",
      "multi_az_priority_policy": "PICK_FIRST"
      }

    • 响应示例
      {
          "scaling_group_id": "a8327883-6b07-4497-9c61-68d03ee193a1"
      }

  2. 确认伸缩组创建成功。

    • 接口相关信息

      URI格式:GET /autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}

      接口请求参数说明详情,请参见查询弹性伸缩组详情

    • 请求示例

      GET: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group/a8327883-6b07-4497-9c61-68d03ee193a1

      其中:

      a8327883-6b07-4497-9c61-68d03ee193a1为创建的伸缩配置UUID。

      {endpoint}信息请从地区和终端节点获取。

    • 响应示例
      {
          "scaling_group": {
            "networks": [
                      {
                          "id": "a8327883-6b07-4497-9c61-68d03ee193a ",
                          "ipv6_enable": true,
                          "ipv6_bandwidth": 
                              {         
                                    "id": "076ee2ff-f23e-4338-b8ac-1bc7278532d5"
                              }
                      }
              ],
              "available_zones": [
                     "XXXa",
                     "XXXb"
              ],
              "detail": null,
              "scaling_group_name": "api_gateway_modify",
              "scaling_group_id": "d4e50321-3777-4135-97f8-9f5e9714a4b0",
              "scaling_group_status": "INSERVICE",
              "scaling_configuration_id": "53579851-3841-418d-a97b-9cecdb663a90",
              "scaling_configuration_name": "press",
              "current_instance_number": 7,
              "desire_instance_number": 8,
              "min_instance_number": 0,
              "max_instance_number": 100,
              "cool_down_time": 900,
              "lb_listener_id": null,
              "security_groups": [
                  {
                      "id": "23b7b999-0a30-4b48-ae8f-ee201a88a6ab"
                  }
              ],
              "create_time": "2015-09-01T08:36:10Z",
              "vpc_id": "3e22f934-800d-4bb4-a588-0b9a76108190",
              "health_periodic_audit_method": "NOVA_AUDIT",
              "health_periodic_audit_time": 5,
              "health_periodic_audit_grace_period": 600,
              "instance_terminate_policy": "OLD_CONFIG_OLD_INSTANCE",
              "is_scaling": true,
              "delete_publicip": false,
              "notifications": null,
              "enterprise_project_id": "c92b1a5d-6f20-43f2-b1b7-7ce35e58e413",
              "activity_type": "MODIFY_ELB",
              "multi_az_priority_policy": "PICK_FIRST"
          }
      }