CreateListener - 创建监听

创建监听。

接口说明

CreateListener 接口属于异步接口,即系统返回一个请求 ID,但该 HTTP、HTTPS 或 QUIC 监听尚未创建成功,系统后台的创建任务仍在进行。您可以调用 GetListenerAttribute 查询 HTTP、HTTPS 或 QUIC 监听的创建状态:

  • 当 HTTP、HTTPS 或 QUIC 监听处于 Provisioning 状态时,表示 HTTP、HTTPS 或 QUIC 监听正在创建中。
  • 当 HTTP、HTTPS 或 QUIC 监听处于 Running 状态时,表示 HTTP、HTTPS 或 QUIC 监听创建成功。

调试

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

授权信息

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

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用前面加 * 表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
alb:CreateListenercreate
*LoadBalancer
acs:alb:{#regionId}:{#accountId}:loadbalancer/{#loadbalancerId}
*SecurityPolicy
acs:alb:{#regionId}:{#accountId}:securitypolicy/{#securitypolicyId}
*ServerGroup
acs:alb:{#regionId}:{#accountId}:servergroup/{#servergroupId}
  • alb:ListenerProtocol

请求参数

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

应用型负载均衡实例 ID。

alb-n5qw04uq8vavfe****
ClientTokenstring

客户端 Token,用于保证请求的幂等性。

从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken 只支持 ASCII 字符。

说明 若您未指定,则系统自动使用 API 请求的 RequestId 作为 ClientToken 标识。每次 API 请求的 RequestId 不一样。
123e4567-e89b-12d3-a456-426655440000
DryRunboolean

是否只预检此次请求,取值:

  • true:发送检查请求,不会创建监听。检查项包括是否填写了必需参数、请求格式、业务限制。如果检查不通过,则返回对应错误。如果检查通过,则返回错误码DryRunOperation

  • false(默认值):发送正常请求,通过检查后返回 HTTP 2xx 状态码并直接进行操作。

false
ListenerProtocolstring

监听协议。

取值:HTTPHTTPSQUIC

HTTP
ListenerPortinteger

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

取值:1~65535

80
ListenerDescriptionstring

自定义监听名称。

长度为 2~256 个字符,必须是中文和无害字符串中的字符,可包含中文、字母、数字、短划线(-)、正斜线(/)、半角句号(.)、下划线(_)。

HTTP_80
RequestTimeoutinteger

指定请求超时时间。单位:秒。

取值:1~180

默认值:60

如果在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,并给客户端返回HTTP 504错误码。

60
IdleTimeoutinteger

指定连接空闲超时时间。单位:秒。

取值范围:1~60

默认值:15

如果在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到一下次请求来临时重新建立新的连接。

3
GzipEnabledboolean

是否开启Gzip压缩,对特定文件类型进行压缩。取值:

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

是否开启HTTP/2特性。取值:

  • true(默认值):是。
  • false:否。
说明 仅 HTTPS 监听支持此参数。
true
SecurityPolicyIdstring

安全策略 ID。支持系统安全策略和自定义安全策略。

默认值:tls_cipher_policy_1_0(系统安全策略)。

说明 仅 HTTPS 监听支持此参数。
tls_cipher_policy_1_0
CaEnabledboolean

是否开启双向认证。取值:

  • true:开启。
  • false(默认值):不开启。
false
XForwardedForConfigobject

XForward 字段配置信息。

XForwardedForClientCertClientVerifyAliasstring

自定义头名称,只有当 XForwardedForClientCertClientVerifyEnabled 的值为 true 的时候,该值才会生效;否则该值不会生效。

取值:1~40 个字符。支持字母 a~z、短划线(-)、下划线(_)和数字。

说明 仅 HTTPS 监听支持此参数。
test_client-verify-alias_123456
XForwardedForClientCertClientVerifyEnabledboolean

是否通过X-Forwarded-Clientcert-clientverify头字段获取对访问负载均衡实例客户端证书的校验结果。取值:

  • true:是。
  • false(默认值):否。
说明 仅 HTTPS 监听支持此参数。
true
XForwardedForClientCertFingerprintAliasstring

自定义头名称,只有当 XForwardedForClientCertFingerprintEnabled 的值为 true 时生效。

取值:1~40 个字符。支持字母 a~z、短划线(-)、下划线(_)和数字。

说明 仅 HTTPS 监听支持此参数。
test_finger-print-alias_123456
XForwardedForClientCertFingerprintEnabledboolean

是否通过X-Forwarded-Clientcert-fingerprint头字段获取访问负载均衡实例客户端证书的指纹取值。取值:

  • true:是。
  • false(默认值):否。
说明 仅 HTTPS 监听支持此参数。
true
XForwardedForClientCertIssuerDNAliasstring

自定义头名称,只有当 XForwardedForClientCertIssuerDNEnabled 的值为 true 的时候,此值才会生效。

取值:1~40 个字符。支持字母 a~z、短划线(-)、下划线(_)和数字。

说明 仅 HTTPS 监听支持此参数。
test_issue-dn-alias_123456
XForwardedForClientCertIssuerDNEnabledboolean

是否通过X-Forwarded-Clientcert-issuerdn头字段获取访问负载均衡实例客户端证书的发行者信息。取值:

  • true:是。
  • false(默认值):否。
说明 仅 HTTPS 监听支持此参数。
true
XForwardedForClientCertSubjectDNAliasstring

自定义头名称,只有当 XForwardedForClientCertSubjectDNEnabled 的值为 true 时,此值才会生效。

取值:1~40 个字符。支持字母 a~z、短划线(-)、下划线(_)和数字。

说明 仅 HTTPS 监听支持此参数。
test_subject-dn-alias_123456
XForwardedForClientCertSubjectDNEnabledboolean

是否通过X-Forwarded-Clientcert-subjectdn头字段获取访问负载均衡实例客户端证书的所有者信息。取值:

  • true:是。
  • false(默认值):否。
说明 仅 HTTPS 监听支持此参数。
true
XForwardedForClientSrcPortEnabledboolean

是否通过X-Forwarded-Client-srcport头字段获取访问负载均衡实例客户端的端口。取值:

  • true:是。
  • false(默认值):否。
说明 HTTP 和 HTTPS 监听支持此参数。
true
XForwardedForEnabledboolean

是否通过X-Forwarded-For头字段获取来访者真实 IP。取值:

  • true(默认值):是。
  • false:否。
说明
  • 配置 trueXForwardedForProcessingMode 默认取值 append,支持修改为 remove
  • 配置 false,ALB 将请求发送至后端服务之前保留X-Forwarded-For头字段,不做额外处理。
  • HTTP 和 HTTPS 监听支持此参数。
  • true
    XForwardedForProcessingModestring

    处理X-Forwarded-For头字段的模式。只有当 XForwardedForEnabledtrue 时,此值才会生效。取值:

    • append(默认值):附加。
    • remove:删除。
    说明
  • 配置 append,将请求发送至后端服务之前把最后一跳 IP 加入X-Forwarded-For头字段。
  • 配置 remove,请求发送至后端服务之前删除X-Forwarded-For标头,无论请求是否携带X-Forwarded-For头字段。
  • HTTP 和 HTTPS 监听支持此参数。
  • append
    XForwardedForProtoEnabledboolean

    是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。取值:

    • true:是。
    • false(默认值):否。
    说明 HTTP、HTTPS 和 QUIC 监听支持此参数。
    false
    XForwardedForSLBIdEnabledboolean

    是否通过SLB-ID头字段获取负载均衡实例 ID。取值:

    • true:是。
    • false(默认值):否。
    说明 HTTP、HTTPS 和 QUIC 监听支持此参数。
    false
    XForwardedForSLBPortEnabledboolean

    是否通过X-Forwarded-Port头字段获取负载均衡实例的监听端口。取值:

    • true:是。
    • false(默认值):否。
    说明 HTTP、HTTPS 和 QUIC 监听支持此参数。
    false
    XForwardedForClientSourceIpsEnabledboolean

    是否允许 ALB 从 X-Forwarded-For 头字段中查找真实客户端 IP。取值:

    • true:是。
    • false(默认值):否。
    说明 HTTP、HTTPS 监听支持此参数。
    false
    XForwardedForClientSourceIpsTrustedstring

    指定可信的代理 IP。

    应用型负载均衡 ALB 会从后往前遍历X-Forwarded-For,选取第一个不在可信 IP 列表中的 IP 作为真实的客户端 IP,该 IP 会被用于源 IP 限速。

    10.1.1.0/24
    XForwardedForHostEnabledboolean

    是否开启通过X-Forwarded-Host头字段获取访问负载均衡实例客户端的域名。取值:

    • true:是。
    • false(默认值):否。
    说明 HTTP、HTTPS 和 QUIC 监听支持此参数。
    false
    QuicConfigobject

    配置关联的 QUIC 监听。

    QuicListenerIdstring

    需要关联的 QUIC 监听 ID,HTTPS 监听时有效,当 QuicUpgradeEnabledtrue 时该参数必选。

    说明 原始监听和关联的 QUIC 监听必须属于同一个 ALB 实例,并且此 QUIC 监听之前没有被关联过。
    lsn-o4u54y73wq7b******
    QuicUpgradeEnabledboolean

    是否开启 QUIC 升级。取值:

    • true:是。
    • false(默认值):否。
    说明 仅 HTTPS 监听支持此参数。
    false
    Certificatesarray<object>

    证书列表信息。

    object

    证书结构体。

    CertificateIdstring

    默认证书 ID,目前仅支持添加 1 个默认服务器证书。

    说明
  • ListenerProtocol 参数取值为 HTTPSQUIC 的时候,此参数为必填。
  • 如需更多服务器证书,可在创建监听后调用 AssociateAdditionalCertificatesWithListener 配置扩展证书。
  • 103705*******
    CaCertificatesarray<object>

    监听配置的 CA 证书列表。目前仅支持添加 1 个 CA 证书。

    object

    监听配置的 CA 证书结构。

    CertificateIdstring

    CA 证书 ID。

    说明 CaEnabled 参数取值为 true 的时候,此参数为必填。
    123157*******
    DefaultActionsarray<object>

    规则动作列表。

    object

    规则动作列表。

    ForwardGroupConfigobject

    转发动作对应的配置。最多支持添加 20 个转发动作对应的配置。

    ServerGroupTuplesarray<object>

    转发目标服务器元组。

    object

    转发目标服务器元组。

    ServerGroupIdstring

    转发到的目的服务器组 ID。

    sgp-8ilqs4axp6******
    Typestring

    动作类型。最多支持添加 1 个动作类型。

    取值:ForwardGroup,表示转发至多个服务器组。

    ForwardGroup
    Tagarray<object>

    标签。

    object

    标签结构。

    Keystring

    标签键。最多支持 128 个字符,不能以 aliyun 或 acs:开头,不能包含 http://或 https://。

    env
    Valuestring

    标签值。最多支持 128 个字符,不能以 aliyun 或 acs:开头,不能包含 http://或 https://。

    product

    返回参数

    名称类型描述示例值
    object

    创建监听。

    JobIdstring

    异步任务 ID。

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

    监听 ID。

    lsn-o4u54y73wq7b******
    RequestIdstring

    请求 ID。

    CEF72CEB-54B6-4AE8-B225-F876*******

    示例

    正常返回示例

    JSON格式

    {
      "JobId": "72dcd26b-f12d-4c27-b3af-18f6aed5****",
      "ListenerId": "lsn-o4u54y73wq7b******",
      "RequestId": "CEF72CEB-54B6-4AE8-B225-F876*******"
    }

    错误码

    HTTP status code错误码错误信息描述
    400ResourceAlreadyExist.ListenerThe specified resource %s is already exist.同端口监听已存在。
    400IncorrectStatus.LoadBalancerThe status of %s [%s] is incorrect.实例的当前状态不支持本次操作。
    400IncorrectBusinessStatus.LoadBalancerThe business status of %s [%s]  is incorrect.资源%s [%s]的业务状态无效。
    400ResourceQuotaExceeded.LoadBalancerListenersNumThe quota of %s is exceeded for resource %s, usage %s/%s.配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。
    400OperationDenied.CrossLoadBalancerQUICListenerThe operation is not allowed because of %s.操作被拒绝,原因是%s。
    400ResourceAlreadyAssociated.ListenerThe specified resource %s is already associated.资源%s已被关联。
    400ResourceQuotaExceeded.SecurityPolicyAttachedNumThe quota of %s is exceeded for resource %s, usage %s/%s.配额%s已超额度限制,资源是%s,目前已使用%s,配额为%s。
    400ResourceQuotaExceeded.ServerGroupAttachedNumThe quota of %s is exceeded for resource %s, usage %s/%s.服务器组可被关联数已超额度限制。
    400ResourceQuotaExceeded.LoadBalancerServersNumThe quota of %s is exceeded for resource %s, usage %s/%s.后端服务器数已超额度限制。
    400ResourceQuotaExceeded.ServerAddedNumThe quota of %s is exceeded for resource %s, usage %s/%s.服务器添加到组已超额度限制。
    400Mismatch.VpcIdThe %s is mismatched for %s and %s.%s在%s和%s中不匹配。
    400OperationDenied.ServerGroupProtocolNotSupportThe operation is not allowed because of ServerGroupProtocolNotSupport.操作被拒绝,原因是ServerGroupProtocolNotSupport。
    400OperationDenied.GRPCServerGroupThe operation is not allowed because of %s.操作被拒绝,原因是存在绑定本GRPC服务器组的监听没有启用HTTP2.0。
    400Mismatch.LoadBalancerEditionAndConnectionDrainThe %s and %s are mismatched.参数%s和%s不匹配。
    400Mismatch.LoadBalancerEditionAndSlowStartEnableThe %s and %s are mismatched.参数%s和%s不匹配。
    400InvalidParameterInvalid parameter, please check the parameter input.无效参数,请检查参数输入。
    403Forbidden.SecurityPolicyAuthentication has failed for SecurityPolicy.SecurityPolicy鉴权失败
    403Forbidden.LoadBalancerAuthentication is failed for %s.负载均衡操作鉴权失败。
    403Forbidden.ListenerAuthentication is failed for %s.监听鉴权失败。
    404ResourceNotFound.LoadBalancerThe specified resource %s is not found.资源%s不存在。
    404ResourceNotFound.ServerGroupThe specified resource %s is not found.后端服务器组不存在。
    404ResourceNotFound.SecurityPolicyThe specified resource %s is not found.资源%s不存在。
    404ResourceNotFound.ListenerThe specified resource %s is not found.监听不存在。
    404ResourceNotFound.CertificateThe specified resource %s is not found.资源%s不存在。

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

    变更历史

    变更时间变更内容概要操作
    2024-12-20OpenAPI 错误码发生变更查看变更详情
    2024-09-03OpenAPI 错误码发生变更查看变更详情
    2024-01-29OpenAPI 错误码发生变更查看变更详情
    2024-01-29OpenAPI 错误码发生变更查看变更详情
    2024-01-18OpenAPI 错误码发生变更查看变更详情
    2023-11-06OpenAPI 错误码发生变更查看变更详情