Example 4: Creating an AS Policy
Scenarios
This section describes how to create an AS policy by calling APIs. For details, see Calling APIs.
An AS policy specifies a condition for triggering a scaling action. When the trigger condition is met, a scaling action occurs.
Involved APIs
Creating an AS policy involves the following 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 for which the AS policy is created.
- Creating an AS Policy: Create a policy for the specified AS group.
- Querying AS Policy Details: Verify the AS policy creation.
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.
- Create an AS policy for the selected AS group.
- API
URI format: POST /autoscaling-api/v1/{project_id}/scaling_policy
For details, see Creating an AS Policy.
- Example request
This example shows how to create a periodic AS policy named as-policy-7a75. The policy takes effect from 2015-12-14T03:34Z through 2015-12-27T03:34Z. During this period, one instance will be added to AS group with ID 5bc3aa02-b83e-454c-aba1-4d2095c68f8b at 16:00 every day.
POST: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_policy
Obtain {endpoint} from Regions and Endpoint.
Body:
{ "scaling_policy_name": "as-policy-7a75", "scaling_policy_action": { "operation": "ADD", "instance_number": 1 }, "cool_down_time": 900, "scheduled_policy": { "launch_time": "16:00", "recurrence_type": "Daily", "start_time": "2015-12-14T03:34Z", "end_time": "2015-12-27T03:34Z" }, "scaling_policy_type": "RECURRENCE", "scaling_group_id": "5bc3aa02-b83e-454c-aba1-4d2095c68f8b" }
- Example response
{ "scaling_policy_id": "0h327883-324n-4dzd-9c61-68d03ee191dd" }
- API
- Verify the AS policy creation.
- API
URI format: GET /autoscaling-api/v1/{project_id}/scaling_policy/{scaling_policy_id}
For details, see Querying an AS Policy.
- Example request
This example shows how to query details about the AS policy with ID 0h327883-324n-4dzd-9c61-68d03ee191dd.
GET: https://{Endpoint}/autoscaling-api/v1/0605767c2e80d5762fd0c0146a10aaf2/scaling_policy/fd7d63ce-8f5c-443e-b9a0-bef9386b23b3
Obtain {endpoint} from Regions and Endpoint.
- Example response
{ "scaling_policy": { "scaling_policy_id": "fd7d63ce-8f5c-443e-b9a0-bef9386b23b3", "scaling_group_id": "e5d27f5c-dd76-4a61-b4bc-a67c5686719a", "scaling_policy_name": "Scheduled 1", "scaling_policy_type": "SCHEDULED", "scheduled_policy": { "launch_time": "2015-07-24T01:21Z" }, "cool_down_time": 300, "scaling_policy_action": { "operation": "REMOVE", "instance_number": 1 }, "policy_status": "INSERVICE", "create_time": "2015-07-24T01:09:30Z" } }
- API
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.