示例2:创建伸缩组
场景描述
本章节指导用户通过API创建伸缩组。API的调用方法请参见如何调用API。
伸缩组是具有相同应用场景的实例的集合,是启停伸缩策略和进行伸缩活动的基本单位。伸缩组内定义了最大实例数、期望实例数、最小实例数、虚拟私有云、子网、负载均衡等信息。
约束限制
- 默认最多可以创建10个伸缩组。
- 如果伸缩组配置了负载均衡,在添加或移除实例时,会自动为实例绑定或解绑负载均衡监听器。
- 如果伸缩组使用负载均衡健康检查方式,伸缩组中的实例需要启用负载均衡的监听端口才能通过健康检查。端口启用可在安全组中进行配置,可参考添加安全组规则进行操作。
涉及接口
创建伸缩组时,需要进行token查询,安全组列表查询,伸缩配置列表查询等操作,涉及的接口如下:
- 获取IAM用户Token:确定调用API鉴权时使用的token。
- 查询VPC列表:确定待创建伸缩组使用的虚拟私有云。
- 查询安全组列表:确定待创建伸缩组使用的安全组。
- 查询子网列表:确定待创建伸缩组使用的子网。
- 查询弹性伸缩配置列表:确定待创建伸缩组的伸缩配置。
- 查询可用区列表:确定待创建伸缩组的可用区。
- 创建弹性伸缩组:使用VPC和伸缩配置等参数创建弹性伸缩组。
- 查询弹性伸缩组详情:确认伸缩组创建成功。
操作步骤
- 确定调用API鉴权时使用的token。
- 查询token,详情请参见获取用户Token。
- 获取响应Header参数中X-Subject-Token对应的值。
- 确定待创建伸缩组使用的虚拟私有云。
- 查询VPC虚拟私有云列表,详情请参见查询VPC列表。
- 根据实际需要选择虚拟私有云,并记录虚拟私有云的ID。
- 确定待创建伸缩组使用的安全组。
- 查询VPC安全组列表,详情请参见查询安全组列表。
- 根据实际需要选择安全组,并记录安全组ID。
- 确定待创建伸缩组使用的子网。
- 根据选定的虚拟私有云ID,查询指定VPC下的子网列表,详情请参见查询子网列表。
- 根据实际需要选择子网,并记录子网ID。
- 确定待创建伸缩组的伸缩配置。
- 查询伸缩配置列表。
- 接口相关信息
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" } ] }
- 根据实际需要选择伸缩配置,并记录伸缩配置ID。
- 查询伸缩配置列表。
- 确定待创建伸缩组的可用区。
- 查询可用域列表,详情请参见查询可用区列表。
- 根据实际需要选择可用区,并记录可用区名称。
- 使用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" }
- 接口相关信息
- 确认伸缩组创建成功。
- 接口相关信息
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" } }
- 接口相关信息