Example 5: Performing Operations on Instances in Batches
Scenarios
This section describes how to perform operations on instances in batches by calling APIs. For details, see Calling APIs.
An instance is an ECS in an AS group. AS allows you to add or remove instances to or from an AS group in batches, configure instance protection or cancel the configuration for the instances in an AS group in batches, and set the standby mode or cancel the setting for the instances in an AS group in batches.
Constraints
- After instances are removed from an AS group, the number of instances in the AS group cannot be less than the minimum number of instances.
- After instances are added to an AS group, the number of instances in the AS group cannot be greater than the maximum number of instances.
- Instances can be added to an AS group only when the AS group is in the INSERVICE state and has no scaling action in progress.
- Instances can be removed from an AS group only when no scaling action is in progress. Only instances in INSERVICE state can be removed from an AS group.
- To add instances to an AS group, ensure that the AZ of the instances must be within that of the AS group and that the instances are in the same VPC as the AS group.
Involved APIs
- Obtaining a User Token: Determine the user token that can be used to authenticate the calling of other APIs.
- Querying AS Groups: Determine the AS group in which the instances will be operated in batches.
- Querying Instances in an AS Group: Determine the instances to be operated in batches in the specified AS group.
- Performing Operations on Instances in Batches: Remove the instances from the AS group in a batch.
Procedure
- Determine the user token that can be used to authenticate the calling of other APIs.
- View the user token. For details, see Obtaining a User Token.
- Obtain the value of X-Subject-Token in the response header.
- Determine the AS group.
- View AS groups.
- API
URI format: GET /autoscaling-api/v1/{project_id}/scaling_group
For details, see Querying AS Groups.
- Example request
GET: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group
Obtain {endpoint} from Regions and Endpoint.
- Example response
{ "limit": 20, "scaling_groups": [ { "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": "as-group-test", "scaling_group_id": "77a7a397-7d2f-4e79-9da9-6a35e2709150", "scaling_group_status": "INSERVICE", "scaling_configuration_id": "1d281494-6085-4579-b817-c1f813be835f", "scaling_configuration_name": "healthCheck", "current_instance_number": 0, "desire_instance_number": 1, "min_instance_number": 0, "max_instance_number": 500, "cool_down_time": 300, "lb_listener_id": "f06c0112570743b51c0e8fbe1f235bab", "security_groups": [ { "id": "8a4b1d5b-0054-419f-84b1-5c8a59ebc829" } ], "create_time": "2015-07-23T02:46:29Z", "vpc_id": "863ccae2-ee85-4d27-bc5b-3ba2a198a9e2", "health_periodic_audit_method": "ELB_AUDIT", "health_periodic_audit_time": 5, "health_periodic_audit_grace_period": 600, "instance_terminate_policy": "OLD_CONFIG_OLD_INSTANCE", "is_scaling": false, "delete_publicip": false, "enterprise_project_id": "c92b1a5d-6f20-43f2-b1b7-7ce35e58e413", "multi_az_priority_policy": "PICK_FIRST" } ], "total_number": 1, "start_number": 0 }
- API
- Select an AS group and record the AS group ID.
- View AS groups.
- Determine the instances.
- View the instances in the specified AS group.
- API
URI format: GET /autoscaling-api/v1/{project_id}/scaling_group_instance/{scaling_group_id}/list
For details, see Querying Instances in an AS Group.
- Example request
This example shows how to query enabled, healthy instances in the AS group with ID e5d27f5c-dd76-4a61-b4bc-a67c5686719a.
GET: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group_instance/e5d27f5c-dd76-4a61-b4bc-a67c5686719a/list?life_cycle_state=INSERVICE&health_status=NORMAL
Obtain {endpoint} from Regions and Endpoint.
- Example response
{ "limit": 10, "total_number": 1, "start_number": 0, "scaling_group_instances": [ { "instance_id": "b25c1589-c96c-465b-9fef-d06540d1945c", "scaling_group_id": "e5d27f5c-dd76-4a61-b4bc-a67c5686719a", "scaling_group_name": "discuz", "life_cycle_state": "INSERVICE", "health_status": "NORMAL", "scaling_configuration_name": "discuz", "scaling_configuration_id": "ca3dcd84-d197-4c4f-af2a-cf8ba39696ac", "create_time": "2015-07-23T06:47:33Z", "instance_name": "discuz_3D210808", "protect_from_scaling_down": false } ] }
- API
- Select instances and record their IDs.
- View the instances in the specified AS group.
- Remove the instances from the AS group in a batch.
- API
URI format: POST /autoscaling-api/v1/{project_id}/scaling_group_instance/{scaling_group_id}/action
For details, see Batch Managing Instances.
- Example request
This example shows how to remove and delete instances with IDs instance_id_1 and instance_id_2 from the AS group with ID e5d27f5c-dd76-4a61-b4bc-a67c5686719a in a batch.
POST: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_group_instance/e5d27f5c-dd76-4a61-b4bc-a67c5686719a/action
Obtain {endpoint} from Regions and Endpoint.
Body:
{ "action": "REMOVE", "instances_id": [ "instance_id_1", "instance_id_2" ], "instance_delete": "yes" }
- API
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.