CreateServerGroup
Creates a server group in a specified region.
Operation description
The CreateServerGroup operation is asynchronous. The system returns a request ID, but the server group of the Network Load Balancer (NLB) is not yet created, and the creation task is still running in the background. You can call the GetJobStatus operation to query the creation status of the server group:
If the task status is Succeeded, the server group is created.
If the task status is Processing, the server group is being created. In this state, you can only perform query operations and cannot perform other operations.
Try it now
Test
RAM authorization
|
Action |
Access level |
Resource type |
Condition key |
Dependent action |
|
nlb:CreateServerGroup |
create |
*ServerGroup
*VPC
|
None | None |
Request parameters
|
Parameter |
Type |
Required |
Description |
Example |
| ServerGroupType |
string |
No |
The server group type. Valid values:
|
Instance |
| ServerGroupName |
string |
Yes |
The name of the server group. The name must be 2 to 128 characters in length, and must start with a letter or Chinese character. It can contain digits, periods (.), underscores (_), and hyphens (-). |
NLB_ServerGroup |
| AddressIPVersion |
string |
No |
The protocol version. Valid values:
|
ipv4 |
| IpVersionAffinityMode |
string |
No |
The traffic scheduling policy in dual-stack mode. Valid values:
Note
This parameter takes effect only when AddressIPVersion is set to DualStack. |
Affinity |
| Protocol |
string |
No |
The communication protocol used to forward traffic to backend servers. Valid values:
Note
|
TCP |
| VpcId |
string |
Yes |
The ID of the VPC where the server group is deployed. Note
If ServerGroupType is set to Instance, only servers in this VPC can be added to the server group. |
vpc-bp15zckdt37pq72zv**** |
| AnyPortEnabled |
boolean |
No |
Specifies whether to enable all-port forwarding. Valid values:
|
false |
| ConnectionDrainEnabled |
boolean |
No |
Specifies whether to enable connection draining. Valid values:
|
false |
| ConnectionDrainTimeout |
integer |
No |
The 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 UDP. |
Wrr |
| PreserveClientIpEnabled |
boolean |
No |
Specifies whether to enable client IP address preservation. Valid values:
Note
If Protocol is set to TCP and this parameter is set to true, the server group cannot be associated with TCPSSL listeners. |
true |
| HealthCheckConfig |
object |
No |
The health check configuration. |
|
| HealthCheckConnectPort |
integer |
No |
The port of the backend server used for health checks. Valid values: 0 to 65535. Default value: 0. This value indicates that the port of the backend server is used for health checks. |
0 |
| HealthCheckConnectTimeout |
integer |
No |
The maximum timeout period for a health check response. Unit: seconds. Valid values: 1 to 300. Default value: 5. |
5 |
| HealthCheckDomain |
string |
No |
The domain name used for health checks. Valid values:
Note
This parameter takes effect only when HealthCheckType is set to HTTP. |
$SERVER_IP |
| HealthCheckEnabled |
boolean |
No |
Specifies whether to enable health checks. Valid values:
|
true |
| HealthCheckExp |
string |
No |
The query string in the request for UDP listener health checks. The string can contain only letters and digits, and can be up to 512 characters in length. |
ok |
| HealthCheckHttpCode |
array |
No |
The HTTP status codes for healthy responses. Separate multiple status codes with commas (,). Valid values: http_2xx (default), http_3xx, http_4xx, and http_5xx. Note
This parameter takes effect only when HealthCheckType is set to HTTP. |
|
|
string |
No |
The HTTP status codes for healthy responses. Separate multiple status codes with commas (,). Valid values: http_2xx (default), http_3xx, http_4xx, and http_5xx. Note
This parameter takes effect only when HealthCheckType is set to HTTP. |
http_2xx |
|
| HealthCheckHttpVersion |
string |
No |
The HTTP protocol version for health checks. Valid values: HTTP1.0 (default) and HTTP1.1. Note
This parameter takes effect only when HealthCheckType is set to HTTP. |
HTTP1.0 |
| HealthCheckInterval |
integer |
No |
The interval between two consecutive health checks. Unit: seconds. Default value: 5.
|
5 |
| HealthCheckReq |
string |
No |
The query string in the request for UDP listener health checks. The string can contain only letters and digits, and can be up to 512 characters in length. |
hello |
| HealthCheckType |
string |
No |
The protocol used for health checks. Valid values:
|
TCP |
| HealthCheckUrl |
string |
No |
The health check path. The path must be 1 to 80 characters in length, and can contain only letters, digits, and the following special characters: Note
This parameter takes effect only when HealthCheckType is set to HTTP. |
/test/index.html |
| HealthyThreshold |
integer |
No |
The number of consecutive successful health checks that must occur before the health check status of a backend server is changed from fail to success. Valid values: 2 to 10. Default value: 2. |
2 |
| HttpCheckMethod |
string |
No |
The HTTP method used for health checks. Valid values: GET (default) and HEAD. Note
This parameter takes effect only when HealthCheckType is set to HTTP. |
GET |
| UnhealthyThreshold |
integer |
No |
The number of consecutive failed health checks that must occur before the health check status of a backend server is changed from success to fail. Valid values: 2 to 10. Default value: 2. |
2 |
| ResourceGroupId |
string |
No |
The ID of the resource group to which the server group belongs. |
rg-atstuj3rtop**** |
| DryRun |
boolean |
No |
Specifies whether to only precheck the request. Valid values:
|
true |
| ClientToken |
string |
No |
The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must ensure that it is unique among different requests. The client token can contain only ASCII characters. Note
If you do not specify this parameter, the system automatically uses the RequestId of the API request as the ClientToken. The RequestId of each API request is unique. |
123e4567-e89b-12d3-a456-426655440000 |
| RegionId |
string |
No |
The region ID of the Network Load Balancer (NLB) instance. You can call the DescribeRegions operation to query the most recent region list. |
cn-hangzhou |
| Tag |
array<object> |
No |
The list of tags. |
|
|
object |
No |
The tag. |
||
| Key |
string |
No |
The tag key. The tag key can be up to 64 characters in length, and cannot start with You can add up to 20 tags in a single call. |
env |
| Value |
string |
No |
The tag value. The tag value can be up to 128 characters in length, and cannot start with You can add up to 20 tags in a single call. |
product |
Response elements
|
Element |
Type |
Description |
Example |
|
object |
The server group. |
||
| JobId |
string |
The ID of the asynchronous task. |
72dcd26b-f12d-4c27-b3af-18f6aed5**** |
| RequestId |
string |
The request ID. |
54B48E3D-DF70-471B-AA93-08E683A1B45 |
| ServerGroupId |
string |
The ID of the server group. |
sgp-atstuj3rtoptyui**** |
Examples
Success response
JSON format
{
"JobId": "72dcd26b-f12d-4c27-b3af-18f6aed5****",
"RequestId": "54B48E3D-DF70-471B-AA93-08E683A1B45",
"ServerGroupId": "sgp-atstuj3rtoptyui****"
}
Error codes
|
HTTP status code |
Error code |
Error message |
Description |
|---|---|---|---|
| 400 | IllegalParam.AnyPortServerGroupConflictWithHealthCheckConfig | The param of AnyPortServerGroupConflictWithHealthCheckConfig is illegal. | The server group configuration conflicts with the health check settings. Check the configuration parameters. |
| 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. | The ServerGroupName parameter is invalid. |
| 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. | The parameter %s is missing. Check the input parameters. |
| 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. | The input parameters contain invalid values. Check the input. |
| 400 | SystemBusy | System is busy, please try again later. | The system is busy. 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. |
See Error Codes for a complete list.
Release notes
See Release Notes for a complete list.