All Products
Search
Document Center

Server Load Balancer:CreateServerGroup

Last Updated:Oct 31, 2024

Creates a server group in a region.

Operation description

  • protocol specifies the protocol used to forward requests to the backend servers.

  • NLB instances support only backend server groups that use TCP, UDP, or SSL over TCP.

  • 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

You can run this interface directly in OpenAPI Explorer, saving you the trouble of calculating signatures. After running successfully, OpenAPI Explorer can automatically generate SDK code samples.

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.
OperationAccess levelResource typeCondition keyAssociated operation
nlb:CreateServerGroupcreate
  • ServerGroup
    acs:nlb:{#regionId}:{#accountId}:servergroup/*
  • VPC
    acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}
    none
none

Request parameters

ParameterTypeRequiredDescriptionExample
ServerGroupTypestringNo

The type of server group. Valid values:

  • Instance (default): allows you to specify servers of the Ecs, Eni, or Eci type.
  • Ip: allows you to add servers of by specifying IP addresses.
Instance
ServerGroupNamestringYes

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.

NLB_ServerGroup
AddressIPVersionstringNo

The protocol version. Valid values:

  • ipv4 (default): IPv4
  • DualStack: dual stack
ipv4
ProtocolstringNo

The protocol between the NLB instance and backend servers. Valid values:

  • TCP (default)
  • UDP
  • TCP_UDP
Note
  • If you set the value to UDP, you can associate the server group only with UDP listeners.
  • If you set the value to TCP and PreserveClientIpEnabled to true, you can associate the server group only with TCP listeners.
  • If you set the value to TCP and PreserveClientIpEnabled to false, you can associate the server group with TCP/SSL and TCP listeners.
  • If you set the value to TCP_UDP, you can associate the server group with TCP and UDP listeners.
  • TCP
    VpcIdstringYes

    The ID of the virtual private cloud (VPC) to which the server group belongs.

    Note If ServerGroupType is set to Instance, only servers in the specified VPC can be added to the server group.
    vpc-bp15zckdt37pq72zv****
    AnyPortEnabledbooleanNo

    Specifies whether to enable all-port forwarding. Valid values:

    • true
    • false (default)
    false
    ConnectionDrainEnabledbooleanNo

    Specifies whether to enable connection draining. Valid values:

    • true
    • false (default)
    false
    ConnectionDrainTimeoutintegerNo

    The timeout period of connection draining. Unit: seconds. Valid values: 0 to 900.

    10
    SchedulerstringNo

    The scheduling algorithm. Valid values:

    • Wrr: The weighted round-robin algorithm is used. Backend servers with higher weights receive more requests than backend servers with lower weights. This is the default value.
    • rr: The round-robin algorithm is used. Requests are forwarded to backend servers in sequence.
    • sch: Source IP hashing is used. Requests from the same source IP address are forwarded to the same backend server.
    • tch: Four-element hashing is used. It specifies consistent hashing that is based on four factors: source IP address, destination IP address, source port, and destination port. Requests that contain the same information based on the four factors are forwarded to the same backend server.
    • qch: QUIC ID hashing. Requests that contain the same QUIC ID are forwarded to the same backend server.
    Note QUIC ID hashing is supported only when the backend protocol is set to UDP.
    Wrr
    PreserveClientIpEnabledbooleanNo

    Specifies whether to enable client IP preservation. Valid values:

    • true (default)
    • false
    Note If you set the value to true and Protocol to TCP, the server group cannot be associated with TCPSSL listeners.
    false
    HealthCheckConfigobjectNo

    The configuration of health checks.

    HealthCheckEnabledbooleanNo

    Specifies whether to enable the health check feature. Valid values:

    • true (default)
    • false
    true
    HealthCheckTypestringNo

    The protocol that is used for health checks. Valid values:

    • TCP
    • HTTP
    • UDP
    TCP
    HealthCheckConnectPortintegerNo

    The port that you want to use for health checks on backend servers.

    Valid values: 0 to 65535.

    Default value: 0. If you set the value to 0, the port of a backend server is used for health checks.

    0
    HealthyThresholdintegerNo

    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
    UnhealthyThresholdintegerNo

    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
    HealthCheckConnectTimeoutintegerNo

    The maximum timeout period of a health check. Unit: seconds. Valid values: 1 to 300. Default value: 5.

    5
    HealthCheckIntervalintegerNo

    The interval at which health checks are performed. Unit: seconds.

    Valid values: 1 to 50.

    Default value: 10.

    10
    HealthCheckDomainstringNo

    The domain name that is used for health checks. Valid values:

    • $SERVER_IP: the internal IP address of a backend server.
    • domain: a domain name. The domain name must be 1 to 80 characters in length, and can contain letters, digits, hyphens (-), and periods (.).
    Note This parameter takes effect only if you set HealthCheckType to HTTP.
    $SERVER_IP
    HealthCheckUrlstringNo

    The URL 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: - / . % ? # & . The URL must start with a forward slash (/).

    Note This parameter takes effect only if you set HealthCheckType to HTTP.
    /test/index.html
    HealthCheckHttpCodearrayNo

    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.
    HealthCheckHttpCodestringNo

    The HTTP status code 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
    HttpCheckMethodstringNo

    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
    HealthCheckReqstringNo

    The request string for UDP listener health checks. The string must be 1 to 64 characters in length and can contain only letters and digits.

    hello
    HealthCheckExpstringNo

    The request string for UDP listener health checks. The string must be 1 to 64 characters in length and can contain only letters and digits.

    ok
    ResourceGroupIdstringNo

    The ID of the resource group to which the server group belongs.

    rg-atstuj3rtop****
    DryRunbooleanNo

    Specifies whether to perform a dry run, without performing the actual request. Valid values:

    • true: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the DryRunOperation error code is returned.
    • false (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.
    true
    ClientTokenstringNo

    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.
    123e4567-e89b-12d3-a456-426655440000
    RegionIdstringNo

    The region ID of the NLB instance.

    You can call the DescribeRegions operation to query the most recent region list.

    cn-hangzhou
    Tagarray<object>No

    The tags.

    objectNo

    The tags.

    KeystringNo

    The tag key. The tag key can be up to 128 characters in length and cannot start with acs: or aliyun. It cannot contain http:// or https://.

    You can add up to 20 tags in each call.

    env
    ValuestringNo

    The tag value. The tag value can be up to 128 characters in length and cannot start with acs: or aliyun. It cannot contain http:// or https://.

    You can add up to 20 tags in each call.

    product

    Response parameters

    ParameterTypeDescriptionExample
    object

    Creates a server group.

    RequestIdstring

    The request ID.

    54B48E3D-DF70-471B-AA93-08E683A1B45
    ServerGroupIdstring

    The server group ID.

    sgp-atstuj3rtoptyui****
    JobIdstring

    The ID of the asynchronous task.

    72dcd26b-f12d-4c27-b3af-18f6aed5****

    Examples

    Sample success responses

    JSONformat

    {
      "RequestId": "54B48E3D-DF70-471B-AA93-08E683A1B45",
      "ServerGroupId": "sgp-atstuj3rtoptyui****",
      "JobId": "72dcd26b-f12d-4c27-b3af-18f6aed5****"
    }

    Error codes

    HTTP status codeError codeError messageDescription
    400IllegalParam.AnyPortServerGroupConflictWithHealthCheckConfigThe param of AnyPortServerGroupConflictWithHealthCheckConfig is illegal.-
    400IllegalParamFormat.ParseCreateRsPoolRequestFailedThe param format of CreateRsPoolRequest is illegal.The param format of CreateRsPoolRequest is illegal.
    400IllegalParam.PreserveClientIpSwitchThe param of PreserveClientIpSwitch is illegal.-
    400OperationDenied.VpcNotSupportIpv6The operation is not allowed because of VpcNotSupportIpv6.The VPC you are using does not support Ipv6.
    400IllegalParam.healthCheckDomainThe parameter of healthCheckConfig.healthCheckDomain is illegal.The healthCheckDomain in the health check configuration is invalid. Check the input parameters.
    400OperationDenied.UidNotAllowQuic29The operation is not allowed because of uid not allow quic29 version.-
    400IlleagalParam.healthCheckUrlThe parameter of healthCheckUrl in healthCheckConfig is illegal.The URL of the health check used in the health check setting is invalid.
    400IllegalParam.ServerGroupNameThe param of ServerGroupName is illegal.-
    400DryRunOperationRequest validation has been passed with DryRun flag set.Request validation has been passed with DryRun flag set.
    400MissingParam.%sThe parameter of %s is missing.-
    400IllegalParam.ConnectionDrainTimeoutThe param of ConnectionDrainTimeout is illegal.The parameter ConnectionDrainTimeout is invalid. Check the input parameters.
    400IllegalParamThe param of %s is illegal.-
    400SystemBusySystem is busy, please try again later.-
    400QuotaExceeded.QuotaInsufficientThe 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.
    403Forbidden.NoPermissionAuthentication is failed for NoPermission.Authentication is failed for NoPermission.
    404ResourceNotFound.VpcThe specified resource of Vpc is not found.The specified VPC resource was not found. Please check the input parameters.
    404ResourceNotFound.ResourceGroupThe 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 timeSummary of changesOperation
    2024-06-25The Error code has changedView Change Details
    2024-02-29The Error code has changedView Change Details
    2024-02-22The Error code has changedView Change Details
    2024-02-04The Error code has changedView Change Details
    2024-01-24The Error code has changedView Change Details
    2023-12-18The Error code has changedView Change Details
    2023-10-30The Error code has changedView Change Details
    2023-10-07The Error code has changedView Change Details
    2023-09-27The Error code has changed. The request parameters of the API has changedView Change Details
    2023-09-26The Error code has changedView Change Details
    2023-09-18The Error code has changed. The request parameters of the API has changedView Change Details
    2023-09-05The Error code has changedView Change Details
    2023-08-22The Error code has changedView Change Details
    2023-06-30The internal configuration of the API is changed, but the call is not affectedView Change Details
    2023-06-29The request parameters of the API has changedView Change Details