Updated on 2024-09-06 GMT+08:00

Creating an AS Group

Function

An AS group is a collection of instances that are used in the same scenario. It is the basis for enabling or disabling AS policies and performing scaling actions. An AS group specifies parameters, such as the maximum number of instances, expected number of instances, minimum number of instances, VPC, subnet, and load balance settings.

  • Each account can create a maximum of 10 AS groups by default.
  • If a load balancer is associated with an AS group, AS automatically associates the load balancer with or dissociates the load balancer from instances when the instances are added to or removed from the AS group.
  • If ELB health check is enabled for an AS group, the instances in the AS group must use all the listening ports of each load balancer for health check. You can configure these ports in the security group of the instances. For details, see Adding a Security Group Rule.
    • If you add multiple load balancers to an AS group, an instance is considered healthy only when all load balancers declare that it is healthy. If any load balancer detects that the instance is unhealthy, the instance will be removed from the AS group.
    • If you add a load balancer that has multiple listening ports to an AS group, an instance is considered healthy only when all the ports detect the instance is healthy. If the instance is detected unhealthy by any of the ports, the instance will be removed from the AS group.
  • If you add a load balancer that has multiple listening ports to an AS group, you are advised to create AS policies based on ECS metrics, rather than network metrics or application metrics. If a network metric or an application metric is used, scale-out and scale-in actions may happen at the same time.
  • If you add a load balancer that has multiple listening ports to an AS group, AS can complete a scale-out or scale-in action only when the load balancer listens or no longer listens on all these ports on the instances to be added or removed. Otherwise, AS will release the instances to be added and create new ones in the scale-out action or will not release the instances to be removed in the scale-in action.

URI

POST /autoscaling-api/v1/{project_id}/scaling_group

Table 1 Parameter description

Parameter

Mandatory

Type

Description

project_id

Yes

String

Specifies the project ID.

Request

Table 2 Request parameters

Parameter

Mandatory

Type

Description

scaling_group_name

Yes

String

Specifies the AS group name. The name contains only letters, digits, underscores (_), and hyphens (-), and cannot exceed 64 characters.

scaling_configuration_id

Yes

String

Specifies the AS configuration ID, which can be obtained using the API for querying AS configurations. For details, see Querying AS configurations.

desire_instance_number

No

Integer

Specifies the expected number of instances. The default value is the minimum number of instances.

The value ranges from the minimum number of instances to the maximum number of instances.

min_instance_number

No

Integer

Specifies the minimum number of instances. The default value is 0.

max_instance_number

No

Integer

Specifies the maximum number of instances. The default value is 1. The value is an integer ranging from 0 to 300.

cool_down_time

No

Integer

Specifies the cooldown period (in seconds). The value ranges from 0 to 86400 and defaults to 300.

After a scaling action is complete, the cooldown period starts. During the cooldown period, AS denies all scaling requests triggered by alarm-based policies. Scaling requests triggered manually or by scheduled or periodic policies are not affected.

NOTE:
  • When an AS group scales out, scale-in requests triggered manually or by scheduled and periodic policies will be executed immediately after the scale-out is complete, without being affected by the cooldown period.
  • When an AS group scales in, scale-out requests triggered manually or by scheduled and periodic policies will be executed immediately after the scale-in is complete, without being affected by the cooldown period.

lb_listener_id

No

String

Specifies the ID of a listener added to a load balancer. You can add up to six listeners. Separate listener IDs with commas (,). For how to obtain a listener ID, see Querying Load Balancers.

This parameter is alternative to lbaas_listeners.

lbaas_listeners

No

Array of lbaas_listeners objects

Specifies information about a load balancer. You can add up to six load balancers. This parameter is in list data structure. For details, see Table 3. For how to obtain information about a load balancer, see Querying Backend Server Groups.

This parameter is alternative to lb_listener_id.

available_zones

No

Array of strings

Specifies the AZ information. The instances added in a scaling action will be created in a specified AZ. If you do not specify an AZ, the system automatically specifies one. For details, see Regions and Endpoints.

networks

Yes

Array of networks objects

Specifies network information. You can select up to five subnets. The first subnet you select is used by the primary NICs of ECSs by default. For how to obtain information about subnets, see Querying Subnets. For the information about the data structure, see Table 4.

security_groups

No

Array of security_groups objects

Specifies the security group information. Only one security group can be selected. For how to obtain security group information, see Querying Security Groups. For the information about the data structure, see Table 7.

If a security group is specified both in the AS configuration and the AS group, scaled-out instances will be added to the security group specified in the AS configuration. If a security group is not specified in either of them, scaled-out instances will be added to the default security group. For your convenience, specify a security group in the AS configuration.

vpc_id

Yes

String

Specifies the VPC ID, which can be obtained using the API for querying VPCs. For details, see "Querying VPCs" in Virtual Private Network API Reference.

health_periodic_audit_method

No

String

Specifies the health check method for instances in the AS group. The health check methods include ELB_AUDIT and NOVA_AUDIT. When load balancing is configured for an AS group, the default value is ELB_AUDIT. Otherwise, the default value is NOVA_AUDIT.

  • ELB_AUDIT: indicates the ELB health check, which takes effect in an AS group with a listener.
  • NOVA_AUDIT: indicates the ECS instance health check, which is the health check method that comes with AS.

health_periodic_audit_time

No

Integer

Specifies the health check interval. The value can be 1, 5, 15, 60, or 180 in the unit of minutes. If this parameter is not specified, the default value is 5.

If the value is set to 0, health check is performed every 10 seconds.

health_periodic_audit_grace_period

No

Integer

Specifies the grace period for instance health check. The unit is second and the value ranges from 0 to 86400. The default value is 600.

The health check grace period starts after an instance is added to an AS group and is enabled. The AS group will start checking the instance health only after the grace period ends.

This parameter is valid only when the instance health check method of the AS group is ELB_AUDIT.

instance_terminate_policy

No

String

Specifies the instance removal policy.

  • OLD_CONFIG_OLD_INSTANCE (default): The earlier-created instances based on the earlier-created AS configurations are removed first.
  • OLD_CONFIG_NEW_INSTANCE: The later-created instances based on the earlier-created AS configurations are removed first.
  • OLD_INSTANCE: The earlier-created instances are removed first.
  • NEW_INSTANCE: The later-created instances are removed first.

notifications

No

Array of strings

Specifies the notification mode.

EMAIL refers to notification by email.

This parameter has been discarded. You can configure notifications for the AS group by referring to Notifications.

delete_publicip

No

Boolean

Specifies whether to delete the EIPs bound to ECS instances when the instances are removed from the AS group during scale-in actions. The value can be true or false. The default value is false.
  • true: The EIPs bound to ECSs will be released when the ECSs are removed. If the EIPs are billed on a yearly/monthly basis, they will not be released when the ECSs are removed.
  • false: The EIPs bound to ECSs will be unbound but will not be released when the ECSs are removed.

delete_volume

No

Boolean

Specifies whether to delete the data disks attached to ECS instances when the instances are removed from the AS group during scale-in actions. The value can be true or false. The default value is false.
  • true: The data disks attached to ECSs will be released when the ECSs are removed. If the data disks are billed a yearly/monthly basis, they will not be deleted when ECSs are removed.
  • false: The data disks attached to ECSs will be detached but will not be released when the ECSs are removed.

enterprise_project_id

No

String

Specifies the enterprise project ID, which is used to specify the enterprise project to which the AS group belongs.

  • If the value is 0 or left blank, the AS group belongs to the default enterprise project.
  • If the value is a UUID, the AS group belongs to the enterprise project corresponding to the UUID.. For how to obtain an enterprise project ID, see Querying Enterprise Projects.

If an enterprise project is configured for an AS group, ECSs created in this AS group also belong to this enterprise project. Otherwise, the default enterprise project will be used.

NOTE:

For details about enterprise project features, see Enterprise Project Management Service.

multi_az_priority_policy

No

String

Specifies the priority policy used to select target AZs when adjusting the number of instances in an AS group.

  • EQUILIBRIUM_DISTRIBUTE (default): When AS scales out the AS group, it preferentially distributes instances evenly across AZs in the available_zones list. If it fails in the target AZ, it selects another AZ based on the PICK_FIRST policy.
  • PICK_FIRST: When AS scales out the AS group, the target AZ is determined in the order in the available_zones list.

description

No

String

Specifies the description of the AS group. The value can contain 1 to 256 characters.

iam_agency_name

No

String

Specifies the agency name, in 1 to 64 characters.

  • iam_agency_name is not transferred if it is set to null.
  • iam_agency_name is transferred if it is left blank or has a value.

tags

No

Array of tags objects

Creates tags and adds them the AS group. Each AS group can have a maximum of 10 tags.

For details, see Table 8.

Table 3 lbaas_listeners field description

Parameter

Mandatory

Type

Description

pool_id

Yes

String

Specifies the backend server group ID.

protocol_port

Yes

Integer

Specifies the port configured for the backend server group, which is the port on which a backend server listens for traffic. The port ranges from 1 to 65535.

weight

Yes

Integer

Specifies the weight, which determines the percentage of requests a backend server processes. The value of this parameter ranges from 0 to 100.

protocol_version

No

String

Specifies the version of instance IP addresses to be associated with the load balancer. The value can be ipv4 or ipv6.

NOTE:
  • Instances in an AS group do not support IPv4/IPv6 dual-stack on multiple NICs. IPv4/IPv6 dual-stack is only available for the first NIC that supports both IPv4 and IPv6. The NIC may be a primary NIC or an extension NIC.
  • Only ECSs with flavors that support IPv6 can use IPv4/IPv6 dual-stack networks. If you want to select IPv6 for this parameter, make sure that you have selected such ECS flavors in a supported region.
  • If you add two or more load balancers whose pool_id, protocol_port, and protocol_version settings are totally same, deduplication will be performed.
Table 4 networks field description

Parameter

Mandatory

Type

Description

id

Yes

String

Specifies the subnet ID.

ipv6_enable

No

Boolean

Specifies whether to support IPv6 addresses.

true: indicates that the NIC supports IPv6 addresses.

false: indicates that the NIC does not support IPv6 addresses. The default value is false.

ipv6_bandwidth

No

ipv6_bandwidth object

Specifies the shared bandwidth of an IPv6 address. This parameter is left blank by default, indicating that no shared IPv6 bandwidth is bound.

allowed_address_pairs

No

Array of allowed_address_pairs objects

Specifies whether to allow the system to check the source and destination addresses.

Table 5 ipv6_bandwidth field description

Parameter

Mandatory

Type

Description

id

Yes

String

Specifies the ID of the shared bandwidth of an IPv6 address.

Table 6 allowed_address_pairs field description

Parameter

Mandatory

Type

Description

ip_address

No

String

Specifies whether to allow the system to check the source and destination addresses.

This function is enabled by default. This parameter cannot be left empty.

  • To disable this function, set the value to 1.1.1.1/0.
  • To enable this function, set a value other than 1.1.1.1/0.
Table 7 security_groups field description

Parameter

Mandatory

Type

Description

id

Yes

String

Specifies the security group ID.

Table 8 tags field description

Parameter

Mandatory

Type

Description

key

Yes

String

Specifies the tag key.

  • A key can contain up to 36 Unicode characters. It cannot be left blank.
  • The tag key of a resource must be unique.
  • The key of the tag can contain only uppercase letters, lowercase letters, digits, underscores (_), and hyphens (-).

value

No

String

Specifies the key value.

  • A value can contain up to 43 Unicode characters and can be an empty string.
  • The value can contain only uppercase letters, lowercase letters, digits, underscores (_), hyphens (-), and periods (.).

Example Request

This example creates an AS group with the name GroupNameTest, the AS configuration ID 47683a91-93ee-462a-a7d7-484c006f4440, the VPC ID a8327883-6b07-4497-9c61-68d03ee193a, the NIC ID 3cd35bca-5a10-416f-8994-f79169559870, the maximum number of instances of 10, the expected number of instances of 0, the minimum number of instances of 0, and the health check method of ECS health check, and the multi-AZ scaling policy of PICK_FIRST. The enterprise project is specified by you.

{
    "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",
    "iam_agency_name":"test",
    "tags":[{"key":"1"}]
}

Response

Table 9 Response parameters

Parameter

Type

Description

scaling_group_id

String

Specifies the AS group ID.

Example Response

{
    "scaling_group_id": "a8327883-6b07-4497-9c61-68d03ee193a1"
}

Returned Values

  • Normal

    200

  • Abnormal

    Returned Value

    Description

    400 Bad Request

    The server failed to process the request.

    401 Unauthorized

    You must enter the username and password to access the requested page.

    403 Forbidden

    You are forbidden to access the requested page.

    404 Not Found

    The server could not find the requested page.

    405 Method Not Allowed

    You are not allowed to use the method specified in the request.

    406 Not Acceptable

    The response generated by the server could not be accepted by the client.

    407 Proxy Authentication Required

    You must use the proxy server for authentication to process the request.

    408 Request Timeout

    The request timed out.

    409 Conflict

    The request could not be processed due to a conflict.

    500 Internal Server Error

    Failed to complete the request because of an internal service error.

    501 Not Implemented

    Failed to complete the request because the server does not support the requested function.

    502 Bad Gateway

    Failed to complete the request because the request is invalid.

    503 Service Unavailable

    Failed to complete the request because the system is unavailable.

    504 Gateway Timeout

    A gateway timeout error occurred.

Error Codes

See Error Codes.