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 the GetJobStatus operation to query the creation status of the task.
- If the task is in the Succeeded status, the server group is created.
- If the task is in the Processing status, the server group is being 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:
- For mandatory resource types, indicate with a prefix of * .
- 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 |
---|---|---|---|---|
nlb:CreateServerGroup | create | *ServerGroup acs:nlb:{#regionId}:{#accountId}:servergroup/* *VPC acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId} |
| none |
Request parameters
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
ServerGroupType | string | No | The type of the server group. Valid values:
| Instance |
ServerGroupName | string | Yes | The server group name. The name must be 2 to 128 characters in length, can contain digits, periods (.), underscores (_), and hyphens (-), and must start with a letter. | NLB_ServerGroup |
AddressIPVersion | string | No | The IP version. Valid values:
| ipv4 |
Protocol | string | No | The protocol between the NLB instance and backend servers. Valid values:
Note
| TCP |
VpcId | string | Yes | The ID of the virtual private cloud (VPC) where the server group is deployed. Note
If ServerGroupType is set to Instance, only servers in the specified VPC can be added to the server group.
| vpc-bp15zckdt37pq72zv**** |
AnyPortEnabled | boolean | No | Specifies whether to enable multi-port forwarding. Valid values:
| false |
ConnectionDrainEnabled | boolean | No | Specifies whether to enable connection draining. Valid values:
| false |
ConnectionDrainTimeout | integer | No | Specifies a timeout period for connection draining. Unit: seconds. Valid values: 0 to 900. | 10 |
Scheduler | string | No | The scheduling algorithm. Valid values:
Note
QUIC ID hash is supported only when the backend protocol is set to UDP.
| Wrr |
PreserveClientIpEnabled | boolean | No | Specifies whether to enable client IP preservation. Valid values:
Note
If you set this parameter to true and Protocol to TCP, the server group cannot be associated with TCPSSL listeners.
| true |
HealthCheckConfig | object | No | The configurations of health checks. | |
HealthCheckEnabled | boolean | No | Specifies whether to enable health checks. Valid values:
| true |
HealthCheckType | string | No | The protocol that you want to use for health checks. Valid values:
| TCP |
HealthCheckConnectPort | integer | No | The port that you want to use for health checks on backend servers. Valid values: 0 to 65535. Default value: 0. If you set this parameter to 0, the port that the backend server uses to provide services is also used for health checks. | 0 |
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 status changes from fail to success. Valid values: 2 to 10. Default value: 2. | 2 |
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 status changes from success to fail. Valid values: 2 to 10. Default value: 2. | 2 |
HealthCheckConnectTimeout | integer | No | The timeout period for a health check response. Unit: seconds. Valid values: 1 to 300. Default value: 5. | 5 |
HealthCheckInterval | integer | No | The interval at which health checks are performed. Unit: seconds. Default value: 5.
| 5 |
HealthCheckDomain | string | No | The domain name that is used for health checks. Valid values:
Note
This parameter takes effect only if you set HealthCheckType to HTTP.
| $SERVER_IP |
HealthCheckUrl | string | No | The URL path to which health check probes are sent. The URL path 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 you set HealthCheckType to HTTP.
| /test/index.html |
HealthCheckHttpCode | array | No | The HTTP status codes to return for health checks. Separate multiple HTTP status codes with commas (,). Valid values: http_2xx (default), http_3xx, http_4xx, and http_5xx. Note
This parameter takes effect only if you set HealthCheckType to HTTP.
| |
HealthCheckHttpCode | string | No | The HTTP status codes to return for health checks. Separate multiple HTTP status codes with commas (,). Valid values: http_2xx (default), http_3xx, http_4xx, and http_5xx. Note
This parameter takes effect only if you set HealthCheckType to HTTP.
| http_2xx |
HttpCheckMethod | string | No | The HTTP method that is used for health checks. Valid values: GET (default) and HEAD. Note
This parameter takes effect only if you set HealthCheckType to HTTP.
| GET |
HealthCheckReq | string | No | The request string that UDP listeners send to backend servers for health checks. The string must be 1 to 512 characters in length and can contain only letters and digits. | hello |
HealthCheckExp | string | No | The response string that backend servers return to UDP listeners for health checks. The string must be 1 to 512 characters in length and can contain only letters and digits. | ok |
HealthCheckHttpVersion | string | No | The HTTP version used for health checks. Valid values: HTTP1.0 (default) and HTTP1.1. Note
This parameter takes effect only if you set HealthCheckType to HTTP.
| HTTP1.0 |
ResourceGroupId | string | No | The ID of the resource group to which the server group belongs. | rg-atstuj3rtop**** |
DryRun | boolean | No | Specifies whether to perform a dry run. Valid values:
| true |
ClientToken | string | No | The client token used to ensure the idempotence of the request. You can use the client to generate the token. Ensure that the token is unique among different requests. Only ASCII characters are allowed. Note
If you do not set this parameter, the value of RequestId is used.**** The value of RequestId is different for each request.
| 123e4567-e89b-12d3-a456-426655440000 |
RegionId | string | No | The ID of the region where the NLB instance is deployed. You can call the DescribeRegions operation to query the most recent region list. | cn-hangzhou |
Tag | array<object> | No | The tags. | |
object | No | The tag. | ||
Key | string | No | The key of the tag. The tag key can be up to 64 characters in length, cannot start with You can specify up to 20 tags in each call. | env |
Value | string | No | The value of the tag. The tag value can be up to 128 characters in length, cannot start with You can specify up to 20 tags in each call. | product |
Response parameters
Examples
Sample success responses
JSON
format
{
"RequestId": "54B48E3D-DF70-471B-AA93-08E683A1B45",
"ServerGroupId": "sgp-atstuj3rtoptyui****",
"JobId": "72dcd26b-f12d-4c27-b3af-18f6aed5****"
}
Error codes
HTTP status code | Error code | Error message | Description |
---|---|---|---|
400 | IllegalParam.AnyPortServerGroupConflictWithHealthCheckConfig | The param of AnyPortServerGroupConflictWithHealthCheckConfig is illegal. | - |
400 | IllegalParamFormat.ParseCreateRsPoolRequestFailed | The param format of CreateRsPoolRequest is illegal. | The param format of CreateRsPoolRequest is illegal. |
400 | IllegalParam.PreserveClientIpSwitch | The param of PreserveClientIpSwitch is illegal. | - |
400 | OperationDenied.VpcNotSupportIpv6 | The operation is not allowed because of VpcNotSupportIpv6. | The VPC you are using does not support Ipv6. |
400 | IllegalParam.healthCheckDomain | The parameter of healthCheckConfig.healthCheckDomain is illegal. | The healthCheckDomain in the health check configuration is invalid. Check the input parameters. |
400 | OperationDenied.UidNotAllowQuic29 | The operation is not allowed because of uid not allow quic29 version. | - |
400 | IlleagalParam.healthCheckUrl | The parameter of healthCheckUrl in healthCheckConfig is illegal. | The URL of the health check used in the health check setting is invalid. |
400 | IllegalParam.ServerGroupName | The param of ServerGroupName is illegal. | - |
400 | DryRunOperation | Request validation has been passed with DryRun flag set. | Request validation has been passed with DryRun flag set. |
400 | MissingParam.%s | The parameter of %s is missing. | - |
400 | IllegalParam.ConnectionDrainTimeout | The param of ConnectionDrainTimeout is illegal. | The parameter ConnectionDrainTimeout is invalid. Check the input parameters. |
400 | IllegalParam | The param of %s is illegal. | - |
400 | SystemBusy | System is busy, please try again later. | - |
400 | QuotaExceeded.QuotaInsufficient | The quota of %s is exceeded, usage %s/%s. | The quota is insufficient, currently used %s/%s. Please modify the quota size in the quota center. |
403 | Forbidden.NoPermission | Authentication is failed for NoPermission. | Authentication is failed for NoPermission. |
404 | ResourceNotFound.Vpc | The specified resource of Vpc is not found. | The specified VPC resource was not found. Please check the input parameters. |
404 | ResourceNotFound.ResourceGroup | The param of resourceGroup not existed. | The resource group does not exist. |
For a list of error codes, visit the Service error codes.
Change history
Change time | Summary of changes | Operation |
---|---|---|
2024-06-25 | The Error code has changed | View Change Details |
2024-02-29 | The Error code has changed | View Change Details |
2024-02-22 | The Error code has changed | View Change Details |
2024-02-04 | The Error code has changed | View Change Details |
2024-01-24 | The Error code has changed | View Change Details |
2023-12-18 | The Error code has changed | View Change Details |
2023-10-30 | The Error code has changed | View Change Details |
2023-10-07 | The Error code has changed | View Change Details |
2023-09-27 | The Error code has changed. The request parameters of the API has changed | View Change Details |
2023-09-26 | The Error code has changed | View Change Details |
2023-09-18 | The Error code has changed. The request parameters of the API has changed | View Change Details |
2023-09-05 | The Error code has changed | View Change Details |
2023-08-22 | The Error code has changed | View Change Details |
2023-06-30 | The internal configuration of the API is changed, but the call is not affected | View Change Details |
2023-06-29 | The request parameters of the API has changed | View Change Details |