Help Center/ Auto Scaling/ API Reference/ Application Examples/ Example 4: Creating an AS Policy
Updated on 2022-09-22 GMT+08:00

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:

Procedure

  1. Determine the user token that can be used to authenticate the calling of other APIs.

    1. View the user token. For details, see Obtaining a User Token.
    2. Obtain the value of X-Subject-Token in the response header.

  1. Determine the AS group.

    1. 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
        }
    2. Select an AS group and record the AS group ID.

  1. 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"
      }

  2. 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"
          }
      }