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 Endpoints.
- 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 Endpoints.
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 Endpoints.
- 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.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot