Creates a server group for a Gateway Load Balancer (GWLB) instance.
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 ListServerGroups operation to query the status of the task.
- If the server group is in the Creating state, it indicates that the server group is being created.
- If the 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 |
---|---|---|---|---|
gwlb:CreateServerGroup | create |
|
| none |
Request parameters
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
ServerGroupType | string | No | The type of server group. Valid values:
| Instance |
ServerGroupName | string | No | The server group name. The name must be 2 to 128 characters in length, and can contain digits, periods (.), underscores (_), and hyphens (-). It must start with a letter. | testServerGroupName |
Protocol | string | No | The backend protocol. Valid values:
| GENEVE |
Scheduler | string | No | The scheduling algorithm. Valid values:
| 5TCH |
VpcId | string | Yes | The VPC ID. Note
If ServerGroupType is set to Instance, only servers in the specified VPC can be added to the server group.
| vpc-bp15zckdt37pq72zv**** |
ResourceGroupId | string | No | The resource group ID. | rg-atstuj3rtop**** |
ConnectionDrainConfig | object | No | The configurations of connection draining. | |
ConnectionDrainEnabled | boolean | No | Specifies whether to enable connection draining. Valid values:
| false |
ConnectionDrainTimeout | integer | No | The timeout period of connection draining. Unit: seconds Valid values: 1 to 3600. Default value: 300. | 300 |
HealthCheckConfig | object | No | The configurations of the health check feature. | |
HealthCheckConnectPort | integer | No | The backend server port that is used for health checks. Valid values: 1 to 65535. Default value: 80. | 80 |
HealthCheckConnectTimeout | integer | No | The maximum timeout period of a health check response. Unit: seconds Valid values: 1 to 300. Default value: 5. | 5 |
HealthCheckDomain | string | No | The domain name that you want to use for health checks. Valid values:
Note
This parameter takes effect only if you set HealthCheckProtocol to HTTP.
| $SERVER_IP |
HealthCheckEnabled | boolean | No | Specifies whether to enable the health check feature. Valid values:
| true |
HealthCheckHttpCode | array | No | The HTTP status codes that the system returns for health checks. | |
HealthCheckHttpCode | string | No | The HTTP status codes returned for health checks. Multiple HTTP status codes are separated by commas (,). Valid values:
Default value: http_2xx. Note
This parameter takes effect only if you set HealthCheckProtocol to HTTP.
| http_2xx |
HealthCheckInterval | integer | No | The interval at which health checks are performed. Unit: seconds Valid values: 1 to 50. Default value: 10. | 10 |
HealthCheckPath | string | No | The URL that is used for health checks. The URL must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), forward slashes (/), periods (.), percent signs (%), question marks (?), number signs (#), and ampersands (&). The URL can also contain the following extended characters: _ ; ~ ! ( ) * [ ] @ $ ^ : ' , + = The URL must start with a forward slash (/). Note
This parameter takes effect only if you set HealthCheckProtocol to HTTP.
| /test/index.html |
HealthCheckProtocol | string | No | The protocol that is used for health checks. Valid values:
| TCP |
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 |
Tag | array<object> | No | The tag keys. You can specify at most 20 tags in each call. | |
TagModel | object | No | The tag. | |
Key | string | No | The tag key. The tag key cannot be an empty string. The tag key can be up to 128 characters in length, and cannot start with | testTagKey |
Value | string | No | The tag value. The tag value can be up to 256 characters in length and cannot contain | testTagValue |
DryRun | boolean | No | Specifies whether to perform only a dry run without performing the actual request. Valid values:
| False |
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 client 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.
| 123e4567-e89b-12d3-a456-42665544**** |
Response parameters
Examples
Sample success responses
JSON
format
{
"RequestId": "54B48E3D-DF70-471B-AA93-08E683A1B45",
"ServerGroupId": "sgp-atstuj3rtoptyui****"
}
Error codes
HTTP status code | Error code | Error message | Description |
---|---|---|---|
400 | IllegalParam.HealthCheckProtocol | The param of %s is illegal. | The health check protocol is invalid. Check the input parameters. |
400 | QuotaExceeded.ServerGroupsNum | The quota of %s is exceeded for resource %s, usage %s/%s. | The quota gwlb_quota_servergroups_num has exceeded the quota limit. |
400 | DuplicatedParam.TagKey | The param of %s is duplicated. | The parameter of tag key is duplicated. |
400 | IllegalParam.TagKey | The param of %s is illegal. | - |
404 | ResourceNotFound.Vpc | The specified resource of %s is not found. | The specified virtual private cloud resource does not exist. |
For a list of error codes, visit the Service error codes.