Creates a server group in a region.
Operation description
CreateServerGroup is an asynchronous operation. After a request is sent, the system returns a request ID and runs the task in the background. You can call ListServerGroups to query the status of a server group.
- If a server group is in the Creating state, it indicates that the server group is being created.
- If a server group is in the Available state, it indicates that the server group is created.
Debugging
Authorization information
The following table shows the authorization information corresponding to the API. The authorization information can be used in the Action
policy element to grant a RAM user or RAM role the permissions to call this API operation. Description:
- Operation: the value that you can use in the Action element to specify the operation on a resource.
- Access level: the access level of each operation. The levels are read, write, and list.
- Resource type: the type of the resource on which you can authorize the RAM user or the RAM role to perform the operation. Take note of the following items:
- The required resource types are displayed in bold characters.
- If the permissions cannot be granted at the resource level,
All Resources
is used in the Resource type column of the operation.
- Condition Key: the condition key that is defined by the cloud service.
- Associated operation: other operations that the RAM user or the RAM role must have permissions to perform to complete the operation. To complete the operation, the RAM user or the RAM role must have the permissions to perform the associated operations.
Operation | Access level | Resource type | Condition key | Associated operation |
---|---|---|---|---|
alb:CreateServerGroup | create | *ServerGroup acs:alb:{#regionId}:{#accountId}:servergroup/* |
| none |
Request parameters
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
ServerGroupName | string | Yes | The name of the server group. The name must be 2 to 128 characters in length, and can contain letters, digits, periods (.), underscores (_), and hyphens (-). The name must start with a letter. | sg-atstuj3rtoptyui**** |
ServerGroupType | string | No | The type of server group. Valid values:
| Instance |
VpcId | string | No | The ID of the virtual private cloud (VPC). You can add only servers that are deployed in the specified VPC to the server group. Note
This parameter takes effect when the ServerGroupType parameter is set to Instance or Ip.
| vpc-bp15zckdt37pq72zv**** |
Scheduler | string | No | The scheduling algorithm. Valid values:
Note
This parameter takes effect when the ServerGroupType parameter is set to Instance or Ip.
| Wrr |
Protocol | string | No | The backend protocol. Valid values:
Note
You do not need to specify a backend protocol if you set ServerGroupType to Fc.
| HTTP |
ResourceGroupId | string | No | The ID of the resource group. | rg-atstuj3rtop**** |
HealthCheckConfig | object | Yes | The configuration of the health check feature. | |
HealthCheckConnectPort | integer | No | The backend port that is used for health checks. Valid values: 0 to 65535. The default value is 0, which specifies that the port of a backend server is used for health checks. | 80 |
HealthCheckEnabled | boolean | Yes | Specifies whether to enable the health check feature. Valid values:
Note
If the ServerGroupType parameter is set to Instance or Ip, the health check feature is enabled by default. If the ServerGroupType parameter is set to Fc, the health check feature is disabled by default.
| true |
HealthCheckHost | string | No | The domain name that is used for health checks.
Note
This parameter takes effect only if HealthCheckProtocol is set to HTTP, HTTPS, or gRPC.
| www.example.com |
HealthCheckCodes | array | No | The HTTP status codes that indicate healthy backend servers. | |
string | No | The HTTP status code that indicates healthy backend servers.
Note
This parameter takes effect only if HealthCheckProtocol is set to HTTP, HTTPS, or gRPC.
| http_2xx | |
HealthCheckHttpVersion | string | No | The version of the HTTP protocol. Valid values: HTTP1.0 and HTTP1.1. Default value: HTTP1.1. Note
This parameter takes effect only if HealthCheckProtocol is set to HTTP or HTTPS.
| HTTP1.1 |
HealthCheckInterval | integer | No | The interval at which health checks are performed. Unit: seconds. Valid values: 1 to 50. Default value: 2. | 2 |
HealthCheckMethod | string | No | The HTTP method that is used for health checks. Valid values:
Note
This parameter takes effect only if HealthCheckProtocol is set to HTTP, HTTPS, or gRPC.
| HEAD |
HealthCheckPath | string | No | The path that is used for health checks. The URL must be 1 to 80 characters in length, and can contain letters, digits, and the following special characters: Note
This parameter takes effect only if HealthCheckProtocol is set to HTTP or HTTPS.
| /test/index.html |
HealthCheckProtocol | string | No | The protocol that is used for health checks. Valid values:
| HTTP |
HealthCheckTimeout | integer | No | The timeout period of a health check response. If a backend server does not respond within the specified timeout period, the backend server is declared unhealthy. Unit: seconds. Valid values: 1 to 300. Default value: 5. | 5 |
HealthyThreshold | integer | No | The number of times that an unhealthy backend server must consecutively pass health checks before it is declared healthy. In this case, the health check status of the backend server changes from fail to success. Valid values: 2 to 10. Default value: 3. | 3 |
UnhealthyThreshold | integer | No | The number of times that a healthy backend server must consecutively fail health checks before it is declared unhealthy. In this case, the health check status of the backend server changes from success to fail. Valid values: 2 to 10. Default value: 3. | 3 |
StickySessionConfig | object | No | The configuration of session persistence. Note
This parameter takes effect when the ServerGroupType parameter is set to Instance or Ip.
| |
Cookie | string | No | The cookie that you want to configure for the server. The cookie must be 1 to 200 characters in length, and can contain only ASCII letters and digits. It cannot contain commas (,), semicolons (;), or space characters. It cannot start with a dollar sign ($). Note
This parameter takes effect only when StickySessionEnabled is set to true and StickySessionType is set to server.
| B490B5EBF6F3CD402E515D22BCDA**** |
CookieTimeout | integer | No | The maximum amount of time to wait before the session cookie expires. Unit: seconds. Valid values: 1 to 86400. Default value: 1000. Note
This parameter takes effect only when StickySessionEnabled is set to true and StickySessionType is set to Insert.
| 1000 |
StickySessionEnabled | boolean | No | Specifies whether to enable session persistence. Valid values:
Note
This parameter takes effect when the ServerGroupType parameter is set to Instance or Ip.
| false |
StickySessionType | string | No | The method that is used to handle cookies. Valid values:
Note
This parameter takes effect when the StickySessionEnabled parameter is set to true.
| Insert |
ClientToken | string | No | The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters. Note
If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.
| 5A2CFF0E-5718-45B5-9D4D-70B3FF3898 |
DryRun | boolean | No | Specifies whether to perform only a dry run, without performing the actual request. Valid values:
| false |
UpstreamKeepaliveEnabled | boolean | No | Specifies whether to enable persistent TCP connections. | false |
ServiceName | string | No | This parameter is available only if the ALB Ingress controller is used. In this case, set this parameter to the name of the | test |
UchConfig | object | No | The configuration of consistent hashing based on URLs. | |
Type | string | Yes | The type of the parameter. | QueryString |
Value | string | Yes | The parameter value for consistent hashing. | abc |
ConnectionDrainConfig | object | No | The configurations of connection draining. After connection draining is enabled, ALB maintains data transmission for a period of time after the backend server is removed or declared unhealthy. Note
| |
ConnectionDrainEnabled | boolean | No | Specifies whether to enable connection draining. Valid values:
| false |
ConnectionDrainTimeout | integer | No | The timeout period of connection draining. Valid values: 0 to 900. Default value: 300. | 300 |
SlowStartConfig | object | No | The configurations of slow starts. After slow starts are enabled, SLB prefetches data to newly added backend servers. Requests distributed to the backend servers gradually increase. Note
| |
SlowStartEnabled | boolean | No | Specifies whether to enable slow starts. Valid values:
| false |
SlowStartDuration | integer | No | The duration of a slow start. Valid values: 30 to 900. Default value: 30. | 30 |
Tag | array<object> | No | The tag. | |
object | No | |||
Key | string | No | The tag key. The tag key can be up to 128 characters in length, and cannot start with | env |
Value | string | No | The tag value. The tag value can be up to 128 characters in length, and cannot start with | product |
CrossZoneEnabled | boolean | No | Specifies whether to enable cross-zone load balancing. Valid values:
Note
| true |
Response parameters
Examples
Sample success responses
JSON
format
{
"JobId": "72dcd26b-f12d-4c27-b3af-18f6aed5****",
"RequestId": "365F4154-92F6-4AE4-92F8-7FF34B540710",
"ServerGroupId": "sg-atstuj3rtoptyui****"
}
Error codes
HTTP status code | Error code | Error message | Description |
---|---|---|---|
400 | QuotaExceeded.ServerGroupsNum | The quota of %s is exceeded, usage %s/%s. | The quota of %s is exceeded, usage %s/%s. |
400 | Mismatch.LoadBalancerEditionAndSlowStartEnable | The %s and %s are mismatched. | The %s and %s are mismatched. |
400 | Mismatch.ServerGroupSchedulerAndSlowStartEnable | The %s and %s are mismatched. | The %s and %s are mismatched. |
400 | QuotaExceeded.SlowStartDuration | The quota of %s is exceeded, usage %s/%s. | The quota of %s is exceeded, usage %s/%s. |
400 | UnsupportedFeature.SlowStart | The feature of %s is not supported. | - |
400 | Mismatch.LoadBalancerEditionAndConnectionDrain | The %s and %s are mismatched. | The %s and %s are mismatched. |
400 | QuotaExceeded.ConnectionDrainTimeout | The quota of %s is exceeded, usage %s/%s. | The quota of %s is exceeded, usage %s/%s. |
400 | UnsupportedFeature.ConnectionDrain | The feature of %s is not supported. | The feature of %s is not supported. |
400 | NotExist.ResourceGroup | ResourceGroup does not exist. | - |
400 | OperationDenied.VpcNotSupportIpv6 | The operation is not allowed because of VpcNotSupportIpv6. | This operation is not allowed because the IPv6 function is not enabled for the current VPC. |
400 | UnsupportedFeature.FcServerGroup | Server groups of type FC are not supported. | Server groups of type FC are not supported |
404 | ResourceNotFound.Vpc | The specified resource %s is not found. | - |
For a list of error codes, visit the Service error codes.
Change history
Change time | Summary of changes | Operation |
---|---|---|
2024-11-28 | The Error code has changed. The request parameters of the API has changed | View Change Details |
2024-02-27 | The Error code has changed | View Change Details |
2024-02-23 | The Error code has changed. The request parameters of the API has changed | View Change Details |
2023-11-03 | The Error code has changed. The request parameters of the API has changed | View Change Details |
2023-04-11 | The Error code has changed. The request parameters of the API has changed | View Change Details |