# 示例2：创建伸缩组
#### 场景描述
本章节指导用户通过API创建伸缩组。API的调用方法请参见[如何调用API](https://support.huaweicloud.com/api-as/as_04_0100.html)。
伸缩组是具有相同应用场景的实例的集合，是启停伸缩策略和进行伸缩活动的基本单位。伸缩组内定义了最大实例数、期望实例数、最小实例数、虚拟私有云、子网、负载均衡等信息。
#### 约束限制
- 默认最多可以创建10个伸缩组。
- 如果伸缩组配置了负载均衡，在添加或移除实例时，会自动为实例绑定或解绑负载均衡监听器。
- 如果伸缩组使用负载均衡健康检查方式，伸缩组中的实例需要启用负载均衡的监听端口才能通过健康检查。端口启用可在安全组中进行配置，可参考[添加安全组规则](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0030969470.html)进行操作。
 
#### 涉及接口
创建伸缩组时，需要进行token查询，安全组列表查询，伸缩配置列表查询等操作，涉及的接口如下：
- [获取IAM用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)：确定调用API鉴权时使用的token。
- [查询VPC列表](https://support.huaweicloud.com/api-vpc/vpc_api01_0003.html)：确定待创建伸缩组使用的虚拟私有云。
- [查询安全组列表](https://support.huaweicloud.com/api-vpc/vpc_sg01_0003.html)：确定待创建伸缩组使用的安全组。
- [查询子网列表](https://support.huaweicloud.com/api-vpc/vpc_subnet01_0003.html)：确定待创建伸缩组使用的子网。
- [查询弹性伸缩配置列表 - ListScalingConfigs](https://support.huaweicloud.com/api-as/as_06_0202.html)：确定待创建伸缩组的伸缩配置。
- [查询可用区列表](https://support.huaweicloud.com/api-ecs/ecs_03_1801.html)：确定待创建伸缩组的可用区。
- [创建弹性伸缩组 - CreateScalingGroup](https://support.huaweicloud.com/api-as/as_06_0101.html)：使用VPC和伸缩配置等参数创建弹性伸缩组。
- [查询弹性伸缩组详情 - ShowScalingGroup](https://support.huaweicloud.com/api-as/as_06_0103.html)：确认伸缩组创建成功。
 
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=AS&api=CreateScalingGroup)中调试该接口。
#### 操作步骤
1. 确定调用API鉴权时使用的token。 
   1. 查询token，详情请参见[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)。
   
   2. 获取响应Header参数中X-Subject-Token对应的值。
   
   
   
   
2. 确定待创建伸缩组使用的虚拟私有云。 
   1. 查询VPC虚拟私有云列表，详情请参见[查询VPC列表](https://support.huaweicloud.com/api-vpc/vpc_api01_0003.html)。
   
   2. 根据实际需要选择虚拟私有云，并记录虚拟私有云的ID。
   
   
   
   

3. 确定待创建伸缩组使用的安全组。 
   1. 查询VPC安全组列表，详情请参见[查询安全组列表](https://support.huaweicloud.com/api-vpc/vpc_sg01_0003.html)。
   
   2. 根据实际需要选择安全组，并记录安全组ID。
   
   
   
   

4. 确定待创建伸缩组使用的子网。 
   1. 根据选定的虚拟私有云ID，查询指定VPC下的子网列表，详情请参见[查询子网列表](https://support.huaweicloud.com/api-vpc/vpc_subnet01_0003.html)。
   
   2. 根据实际需要选择子网，并记录子网ID。
   
   
   
   

5. 确定待创建伸缩组的伸缩配置。 
   1. 查询伸缩配置列表。
      - 接口相关信息
      
      
      URI格式：GET /autoscaling-api/v1/{project_id}/scaling_configuration
      接口请求参数说明详情，请参见[查询弹性伸缩配置列表](https://support.huaweicloud.com/api-as/as_06_0202.html)。
      - 请求示例
      
      
      GET: https://{endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_configuration?start_number=0\&limit=10
      {endpoint}信息请从[地区和终端节点](https://developer.huaweicloud.com/endpoint?AS)获取。
      - 响应示例
        ```
        {
            "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"
                }
            ]
        }
        ```
        
      
      
      
      
   
   
   
   2. 根据实际需要选择伸缩配置，并记录伸缩配置ID。
   
   
   
   

6. 确定待创建伸缩组的可用区。 
   1. 查询可用域列表，详情请参见[查询可用区列表](https://support.huaweicloud.com/api-ecs/ecs_03_1801.html)。
   
   2. 根据实际需要选择可用区，并记录可用区名称。
   
   
   
   

7. 使用VPC和伸缩配置等参数创建弹性伸缩组。 
   - 接口相关信息 URL格式：POST /autoscaling-api/v1/{project_id}/scaling_group
     接口请求参数说明详情，请参见[创建弹性伸缩组](https://support.huaweicloud.com/api-as/as_06_0101.html)。
     
   
   - 请求示例 POST: https://{endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group
     {endpoint}信息请从[地区和终端节点](https://developer.huaweicloud.com/endpoint?AS)获取。
     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"
     }
     ```
     
     
   
   
   
   
8. 确认伸缩组创建成功。 
   - 接口相关信息 URI格式：GET /autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}
     接口请求参数说明详情，请参见[查询弹性伸缩组详情](https://support.huaweicloud.com/api-as/as_06_0103.html)。
     
   
   - 请求示例 GET: https://{endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group/a8327883-6b07-4497-9c61-68d03ee193a1
     其中：
     a8327883-6b07-4497-9c61-68d03ee193a1为创建的伸缩配置UUID。
     {endpoint}信息请从[地区和终端节点](https://developer.huaweicloud.com/endpoint?AS)获取。
     
   
   - 响应示例
     ```
     {
         "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,
     ,
             "enterprise_project_id": "c92b1a5d-6f20-43f2-b1b7-7ce35e58e413",
             "activity_type": "MODIFY_ELB",
             "multi_az_priority_policy": "PICK_FIRST"
         }
     }
     ```
     
     
   
   
   
   
 
