CreateLoadBalancerTCPListener - 创建TCP监听

创建TCP监听。

接口说明

说明 新建的监听的状态为 stopped。创建完成后,调用 StartLoadBalancerListener 接口启动监听来转发流量。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
slb:CreateLoadBalancerTCPListenercreate
  • AccessControlList
    acs:slb:{#regionId}:{#accountId}:acl/{#AclId}
  • LoadBalancer
    acs:slb:{#regionId}:{#accountId}:loadbalancer/{#LoadBalancerId}
  • slb:tag

请求参数

名称类型必填描述示例值
RegionIdstring

传统型负载均衡实例的地域 ID。

您可以从地域和可用区列表或通过调用 DescribeRegions 接口查询地域 ID。

cn-hangzhou
LoadBalancerIdstring

传统型负载均衡实例的 ID。

lb-bp1b6c719dfa08ex****
ListenerPortinteger

传统型负载均衡实例前端使用的端口。

取值范围:1~65535

80
BackendServerPortinteger

传统型负载均衡实例后端使用的端口。

取值范围:1~65535

如果不使用服务器组(不指定 vServerGroupId),则该参数必选。

80
Tagarray<object>

标签列表。

object

标签列表。

Keystring

监听的标签键。N 的取值范围:1~20。一旦传入该值,则不允许为空字符串。最多支持 64 个字符,不能以aliyunacs:开头,不能包含http://https://

TestKey
Valuestring

监听的标签值。N 的取值范围:1~20。一旦传入该值,可以为空字符串。最多支持 128 个字符,不能以acs:开头,不能包含http://或者https://

TestValue
Bandwidthinteger

监听的带宽峰值,单位:Mbps。取值:

  • -1:对于按流量计费的公网负载均衡实例,可以将带宽峰值设置为-1,即不限制带宽峰值。

  • 1~5120: 对于按带宽计费的公网负载均衡实例,可以设置每个监听的带宽峰值,但所有监听的带宽峰值之和不能超过实例的带宽峰值。

-1
Schedulerstring

调度算法。取值:

  • wrr(默认值):权重值越高的后端服务器,被轮询到的次数(概率)也越高。

  • rr:按照访问顺序依次将外部请求依序分发到后端服务器。

  • sch:基于源 IP 地址的一致性 hash,相同的源地址会调度到相同的后端服务器。

  • tch:基于四元组的一致性 hash(源 IP+目的 IP+源端口+目的端口),相同的流会调度到相同的后端服务器。

说明 仅性能保障型实例支持 schtch 一致性 hash 算法。
wrr
PersistenceTimeoutinteger

会话保持的超时时间。单位:秒。

取值范围:0~3600

默认值:0,表示关闭会话保持。

0
EstablishedTimeoutinteger

连接超时时间。单位:秒。

取值范围:10~900

500
HealthyThresholdinteger

健康检查连续成功多少次后,将后端服务器的健康检查状态由 fail 判定为 success

取值范围: 2~10

4
UnhealthyThresholdinteger

健康检查连续失败多少次后,将后端服务器的健康检查状态由 success 判定为 fail

取值范围:2~10

4
HealthCheckConnectTimeoutinteger

每次健康检查响应的最大超时时间。单位:秒。

取值范围:1~300

默认值:5

100
HealthCheckConnectPortinteger

健康检查使用的端口。

取值范围:1~65535

不设置此参数时,表示使用后端服务端口(BackendServerPort)。

80
healthCheckIntervalinteger

健康检查的时间间隔。单位:秒。

取值范围:1~50

3
HealthCheckDomainstring

用于健康检查的域名。取值:

  • $_ip: 后端服务器的私网 IP。当指定了 IP 或该参数未指定时,负载均衡会使用各后端服务器的私网 IP 当做健康检查使用的域名。

  • domain:域名长度为 1~80,只能包含字母、数字、半角句号(.)和短划线(-)。

172.XX.XX.6
HealthCheckURIstring

用于健康检查的 URI。长度限制为 1~80,只能使用字母、数字、短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、井号(#)和 and(&)这些字符。 URI 不能只为正斜线(/),但必须以正斜线(/)开头。

当 TCP 监听需要使用 HTTP 健康检查时可配置此参数,如不配置则按 TCP 健康检查。

/test/index.html
HealthCheckHttpCodestring

健康检查正常的 HTTP 状态码,多个状态码用半角逗号(,)分割。取值:

  • http_2xx(默认值)
  • http_3xx
  • http_4xx
  • http_5xx
http_2xx,http_3xx
HealthCheckTypestring

健康检查类型。取值:

  • tcp(默认值)
  • http
tcp
VServerGroupIdstring

虚拟服务器组 ID。

rsp-cige6j****
MasterSlaveServerGroupIdstring

主备服务器组 ID。

说明 虚拟服务器组 ID 和主备服务器组 ID 只能选择一个。
rsp-0bfucw****
AclIdstring

监听绑定的访问策略组 ID。

说明 AclStatus 参数的值为 on 时,该参数必选。
acl-uf60jwfiv6******
AclTypestring

访问控制类型:

  • white: 仅转发来自所选访问控制策略组中设置的 IP 地址或地址段的请求,白名单适用于只允许特定 IP 访问的场景。 设置白名单存在一定业务风险。

一旦设置白名单,就只有白名单中的 IP 可以访问负载均衡监听。如果开启了白名单访问,但访问策略组中没有添加任何 IP,则负载均衡监听会转发全部请求。

  • black: 来自所选访问控制策略组中设置的 IP 地址或地址段的所有请求都不会转发,黑名单适用于只限制某些特定 IP 访问的场景。

如果开启了黑名单访问,但访问策略组中没有添加任何 IP,则负载均衡监听会转发全部请求。

说明 AclStatus 参数的值为 on 时,该参数有效。
black
AclStatusstring

是否开启访问控制功能。取值:

  • on:开启。
  • off(默认值):不开启。
off
Descriptionstring

自定义监听名称。

长度限制为 1~256 个字符,支持中文、字母、数字、短划线(-)、正斜线(/)、半角句号(.)和下划线(_)。

tcp_80
ConnectionDrainstring

是否开启连接优雅中断。取值:

  • on:开启。

  • off:不开启。

off
ConnectionDrainTimeoutinteger

设置连接优雅中断超时时间。单位:秒。

取值范围:10~900

说明 ConnectionDrain 取值为 on 时,该选项必选。
300
ProxyProtocolV2Enabledboolean

是否支持通过 Proxy Protocol 协议携带客户端源地址到后端服务器。取值:

  • true:是。
  • false(默认值):否。
false
HealthCheckSwitchstring

是否开启健康检查。取值:

  • on(默认值):开启。
  • off:不开启。
on

返回参数

名称类型描述示例值
object
RequestIdstring

请求 ID。

CEF72CEB-54B6-4AE8-B225-F876FF7BA984

示例

正常返回示例

JSON格式

{
  "RequestId": "CEF72CEB-54B6-4AE8-B225-F876FF7BA984"
}

错误码

HTTP status code错误码错误信息描述
400InvalidParameterValue.SpecNotSupportThe loadBalancer of shared spec does not support the parameter value, %s.共享型负载均衡实例不支持指定的参数取值。
400OperationNotSupport.AclThe cloud box instance does not support acl.云盒实例不支持配置访问控制。
400InvalidParameterValue.RegionNotSupportThe region does not support the parameter value, %s.当前地域不支持指定的参数取值。
400Abs.VServerGroupIdAndMasterSlaveServerGroupId.MissMatchThe parameters VServerGroupId or MasterSlaveServerGroupId miss match.参数VServerGroupId或MasterSlaveServerGroupId不匹配。
400IpVersionConflictThe ip version of this LoadBalancer and the Acl is conflict.指定负载均衡的IP版本与ACL支持的IP类型冲突。
400InvalidParameterValue.ZoneNotSupportThe zone does not support the parameter value, %s.当前可用区不支持指定参数取值。
400ListenerProcessingA previous configuration of the listener is pending, please try again later.当前监听正在配置中,请稍后重试。
400AclNotExistAcl does not exist.指定的Acl不存在。
400InvalidParameter.ListenerPortConflictThere is conflict listener port exists.指定的监听端口已存在。
400InvalidParameter.ZoneNotSupportThe zone does not support the parameter %s.当前可用区不支持指定参数。
400InvalidParam.VServerGroupIdThe specified VServerGroupId is invalid.指定的VServerGroupId无效。请检查参数约束,并在修改后重试。
400MissingParam.HealthCheckConnectPortThe parameter HealthCheckConnectPort is required.参数HealthCheckConnectPort缺失。
400InvalidParam.ListenerPortThe specified ListenerPort is invalid.指定的ListenerPort无效。请检查参数约束,并在修改后重试。
400InvalidParam.StartPortThe specified StartPort is invalid.指定的StartPort无效。请检查参数约束,并在修改后重试。
400InvalidParamSize.PortRangeThe size of param PortRange is invalid.指定的PortRange无效。请检查参数约束,并在修改后重试。
400InvalidParam.EndPortThe specified EndPort is invalid.指定的EndPort无效。请检查参数约束,并在修改后重试。
400QuotaLimitExceeds.AclAttachedToListener%s.-
400QuotaLimitExceeds.TotalAclEntry%s.-
400AclListenerOverLimit%s.-
400Duplicated.AclEntry%s.Acl条目重复。
400OperationUnsupported.SetAccessControlThe singleTunnel/anyTunnel loadbalancer does not support config AccessControlList.操作被拒绝,原因是Single Tunnel和Any Tunnel 类型负载均衡实例不支持配置Acl。
400InvalidParam.PortRangeThe specified PortRange is invalid.指定的PortRange无效。请检查参数约束,并在修改后重试。
400InvalidParameter.RegionNotSupportThe region does not support the parameter: %s.当前区域不支持指定参数。
400LbNotSupportTcpsslYou cannot create a TCP SSL type listener for the specified load balancer.指定的实例不支持创建tcpssl类型的监听。
400LbSupportTcpsslOnlyThe specified load balancer supports TCP SSL type listener only.指定的实例只支持创建tcpssl类型的监听。
400ListenerNotSupportRuleYou cannot create a rule for the specified listener.指定的监听不支持创建转发规则。
400ListenerPortConflictThe specified ListenerPort is conflict with other listener.指定的监听端口号已被占用。
400ResourceNotFound.VServerGroup%s.指定的服务器组不存在。
400IllegalParam.FailoverThresholdThe parameter FailoverThreshold is illegal.指定的FailoverThreshold无效。请检查参数约束,并在修改后重试。
400IllegalParam.FailoverStrategyThe parameter FailoverStrategy is illegal.指定的FailoverStrategy无效。请检查参数约束,并在修改后重试。
400MasterSlaveServerConflictThe servers are conflict for MasterSlaveGroup.主备服务器组的后端服务器冲突。
400OperationDenied.HealthCheckClosedForMasterSlaveModeThe operation is denied because of HealthCheckClosedForMasterSlaveMode.操作被拒绝,原因是主备模式下要求必须开启健康检查。
400IllegalParam.HealthCheckThe param of HelathCheck is illegal.指定的HealthCheck无效。请检查参数约束,并在修改后重试。
400Mismatch.SlbSpecTypeAndListenerProtocolThe SlbSpecType and ListenerProtocol are mismatched.实例规格类型和监听类型不匹配。
400OperationDenied.FullNatModeNotAllowedThe operation is not allowed because of FullNatModeNotAllowed.操作被拒绝,原因是不支持FullNat模式。
400OperationDenied.OnlyIpv4SlbSupportThe operation is not allowed because of OnlyIpv4SlbSupport.操作被拒绝,原因是只有IPV4实例支持开启FULL NAT模式。
400SpecNotSupportParameterThe instance with share spec does not support FullNatEnabled parameter.共享型实例不支持FullNatEnabled参数。
400InvalidParam.TagValue %s.-
400InvalidParam.TagKey%s.-
400SizeLimitExceeded.Tag%s.-
400MissingParam.TagKeyThe param MissingParam.TagKey is missing.-
400MissingParameterThe BackendServerPort or VServerGroupId is required at lease one.参数BackendServerPort和VServerGroupId至少需要配置一个。

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
2023-09-08OpenAPI 错误码发生变更查看变更详情
2023-06-02OpenAPI 错误码发生变更查看变更详情