ALIYUN::ALB::Listener类型用于创建HTTP、HTTPS或QUIC监听。

语法

{
  "Type": "ALIYUN::ALB::Listener",
  "Properties": {
    "RequestTimeout": Integer,
    "ListenerPort": Integer,
    "Http2Enabled": Boolean,
    "DefaultActions": List,
    "Certificates": List,
    "IdleTimeout": Integer,
    "LoadBalancerId": String,
    "ListenerProtocol": String,
    "QuicConfig": Map,
    "GzipEnabled": Boolean,
    "SecurityPolicyId": String,
    "ListenerDescription": String,
    "XForwardedForConfig": Map,
    "CaEnabled": Boolean,
    "CaCertificates": List
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
RequestTimeout Integer 请求超时时间。 取值范围:1~180。

默认值:60。

单位:秒。

如果在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,并给客户端返回HTTP 504错误码。
ListenerPort Integer 监听端口。 取值范围:1~65,535。
Http2Enabled Boolean 是否开启HTTP/2特性。 取值:
  • true(默认值):开启HTTP/2特性。
  • false:关闭HTTP/2特性。
说明 仅HTTPS监听支持指定该参数。
DefaultActions List 规则动作列表。 取值示例:
[
        {
          "ForwardGroupConfig": {
            "ServerGroupTuples": [
              {
                "ServerGroupId": "sgp-46ndzg2wz4v5mp****"
              }
            ]
          },
          "Type": "ForwardGroup"
        }
      ]
更多信息,请参见DefaultActions属性
Certificates List 证书。 更多信息,请参见Certificates属性
IdleTimeout Integer 连接空闲超时时间。 取值范围:1~60。

默认值:15。

单位:秒。

如果在超时时间内一直没有访问请求,负载均衡会暂时中断当前连接,直到下一次请求来临时重新建立新的连接。
LoadBalancerId String 负载均衡实例ID。
ListenerProtocol String 监听协议。 取值:
  • HTTP
  • HTTPS
  • QUIC
QuicConfig Map 配置关联的QUIC监听。 更多信息,请参见QuicConfig属性
GzipEnabled Boolean 是否开启Gzip压缩,压缩特定文件类型。 取值:
  • true(默认值):开启Gzip压缩。
  • false:关闭Gzip压缩。
SecurityPolicyId String 安全策略ID。 支持系统安全策略和自定义安全策略。

默认值:tls_cipher_policy_1_0,表示系统安全策略。

说明 仅HTTPS监听支持此参数。
ListenerDescription String 监听的描述信息。 长度为2~256个字符。
XForwardedForConfig Map XForward字段配置信息。 更多信息,请参见XForwardedForConfig属性
CaEnabled Boolean 是否开启双向认证。 取值:
  • true:开启双向认证。
  • false(默认值):不开启双向认证。
CaCertificates List CA证书信息。 更多信息,请参见CaCertificates属性

DefaultActions语法

"DefaultActions": [
  {
    "Type": String,
    "ForwardGroupConfig": Map
  }
]

DefaultActions属性

属性名称 类型 必须 允许更新 描述 约束
Type String 动作类型。 取值:ForwardGroup,表示转发至多个虚拟服务器组。
ForwardGroupConfig Map 转发Action对应的配置。 更多信息,请参见ForwardGroupConfig属性

ForwardGroupConfig语法

"ForwardGroupConfig": {
  "ServerGroupTuples": List
}

ForwardGroupConfig属性

属性名称 类型 必须 允许更新 描述 约束
ServerGroupTuples List 转发目标服务器组。 更多信息,请参见ServerGroupTuples属性

ServerGroupTuples语法

"ServerGroupTuples": [
  {
    "ServerGroupId": String
  }
]

ServerGroupTuples属性

属性名称 类型 必须 允许更新 描述 约束
ServerGroupId String 转发到的目标服务器组ID。

Certificates语法

"Certificates": [
  {
    "CertificateId": String
  }
]

Certificates属性

属性名称 类型 必须 允许更新 描述 约束
CertificateId String 证书ID。 当前仅支持服务器证书。

QuicConfig语法

"QuicConfig": {
  "QuicListenerId": String,
  "QuicUpgradeEnabled": Boolean
}

QuicConfig属性

属性名称 类型 必须 允许更新 描述 约束
QuicListenerId String 需要关联的QUIC监听ID。 当QuicUpgradeEnabled取值为true时必须指定该参数。
说明
  • 仅HTTPS监听支持指定该参数。
  • 原始监听和关联的QUIC监听必须属于同一个ALB实例,并且此QUIC监听之前没有被关联过。
QuicUpgradeEnabled Boolean 是否开启QUIC升级。 取值:
  • true:开启。
  • false(默认值):关闭。
说明 仅HTTPS监听支持指定该参数。

XForwardedForConfig语法

"XForwardedForConfig": {
  "XForwardedForClientCertFingerprintAlias": String,
  "XForwardedForClientCertFingerprintEnabled": Boolean,
  "XForwardedForClientCertIssuerDNAlias": String,
  "XForwardedForClientCertClientVerifyAlias": String,
  "XForwardedForSLBIdEnabled": Boolean,
  "XForwardedForClientCertSubjectDNEnabled": Boolean,
  "XForwardedForClientCertSubjectDNAlias": String,
  "XForwardedForProtoEnabled": Boolean,
  "XForwardedForClientSrcPortEnabled": Boolean,
  "XForwardedForSLBPortEnabled": Boolean,
  "XForwardedForEnabled": Boolean,
  "XForwardedForClientCertIssuerDNEnabled": Boolean,
  "XForwardedForClientCertClientVerifyEnabled": Boolean,
  "XForwardedForClientSourceIpsEnabled": Boolean,
  "XForwardedForClientSourceIpsTrusted": String
}

XForwardedForConfig属性

属性名称 类型 必须 允许更新 描述 约束
XForwardedForClientCertFingerprintAlias String 自定义头名称,用于获取访问负载均衡实例客户端证书的指纹取值。 当XForwardedForClientCertFingerprintEnabled取值为true时,该参数有效。

长度为1~40个字符,可包含小写英文字母、数字、短划线(-)和下划线(_)。

说明 仅HTTPS监听支持指定该参数。
XForwardedForClientCertFingerprintEnabled Boolean 是否通过X-Forwarded-Clientcert-fingerprint头字段获取访问负载均衡实例客户端证书的指纹取值。 取值:
  • true:通过。
  • false(默认值):不通过。
说明 仅HTTPS监听支持指定该参数。
XForwardedForClientCertIssuerDNAlias String 自定义头名称,用于获取访问负载均衡实例客户端证书的发行者信息。 当XForwardedForClientCertIssuerDNEnabled取值为On时,该参数有效。

长度为1~40个字符,可包含小写英文字母、数字、短划线(-)和下划线(_)。

说明 仅HTTPS监听支持指定该参数。
XForwardedForClientCertClientVerifyAlias String 自定义头名称,用于获取对访问负载均衡实例客户端证书的校验结果。 当XForwardedForClientCertClientVerifyEnabled取值为true时,该参数有效。

长度为1~40个字符,可包含小写英文字母、数字、短划线(-)和下划线(_)。

说明 仅HTTPS监听支持指定该参数。
XForwardedForSLBIdEnabled Boolean 是否通过SLB-ID头字段获取负载均衡实例ID。 取值:
  • true:通过。
  • false(默认值):不通过。
XForwardedForClientCertSubjectDNEnabled Boolean 是否通过X-Forwarded-Clientcert-subjectdn头字段获取访问负载均衡实例客户端证书的所有者信息。 取值:
  • true:通过。
  • false(默认值):不通过。
说明 仅HTTPS监听支持指定该参数。
XForwardedForClientCertSubjectDNAlias String 自定义头名称,用于获取访问负载均衡实例客户端证书的所有者信息。 当XForwardedForClientCertSubjectDNEnabled取值为true时,该参数有效。

长度为1~40个字符,可包含小写英文字母、数字、短划线(-)和下划线(_)。

说明 仅HTTPS监听支持指定该参数。
XForwardedForProtoEnabled Boolean 是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。 取值:
  • true:通过。
  • false(默认值):不通过。
XForwardedForClientSrcPortEnabled Boolean 是否通过X-Forwarded-Client-Port头字段获取访问负载均衡实例客户端的端口。 取值:
  • true:通过。
  • false(默认值):不通过。
说明 仅HTTP和HTTPS监听支持指定该参数。
XForwardedForSLBPortEnabled Boolean 是否通过X-Forwarded-Port头字段获取负载均衡实例的监听端口。 取值:
  • true:通过。
  • false(默认值):不通过。
XForwardedForEnabled Boolean 是否通过X-Forwarded-For头字段获取来访者真实IP地址。 取值:
  • true(默认值):通过。
  • false:不通过。
说明 仅HTTP和HTTPS监听支持指定该参数。
XForwardedForClientCertIssuerDNEnabled Boolean 是否通过X-Forwarded-Clientcert-issuerdn头字段获取访问负载均衡实例客户端证书的发行者信息。 取值:
  • true:通过。
  • false(默认值):不通过。
说明 仅HTTPS监听支持指定该参数。
XForwardedForClientCertClientVerifyEnabled Boolean 是否通过X-Forwarded-Clientcert-clientverify头字段获取对访问负载均衡实例客户端证书的校验结果。 取值:
  • true:通过。
  • false(默认值):不通过。
说明 仅HTTPS监听支持指定该参数。
XForwardedForClientSourceIpsEnabled Boolean 是否通过X-Forwarded-Client-SourceIps头字段获取访问负载均衡实例客户端的源地址。 取值:
  • true:通过。
  • false(默认值):不通过。
XForwardedForClientSourceIpsTrusted String 是否信任X-Forwarded-Client-SourceIps头字段获取访问负载均衡实例客户端的源地址。 取值:
  • true:信任。
  • false(默认值):不信任。

CaCertificates语法

"CaCertificates": [
  {
    "CertificateId": String
  }
]

CaCertificates属性

属性名称 类型 必须 允许更新 描述 约束
CertificateId String CA证书ID。

返回值

Fn::GetAtt

ListenerId:监听ID。

示例

  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "ListenerPort": {
          "Type": "Number",
          "Description": "The frontend port that is used by the ALB instance.\nValid values: 1 to 65535.",
          "MinValue": 1,
          "MaxValue": 65535,
          "Default": 80
        },
        "DefaultActions": {
          "Type": "Json",
          "Description": "The actions of the rule.",
          "Default": [
            {
              "ForwardGroupConfig": {
                "ServerGroupTuples": [
                  {
                    "ServerGroupId": "sgp-46ndzg2wz4v5mp****"
                  }
                ]
              },
              "Type": "ForwardGroup"
            }
          ]
        },
        "LoadBalancerId": {
          "Type": "String",
          "Description": "The ID of the ALB instance.",
          "Default": "lb-bp1iilcd9ujny84z8****"
        },
        "ListenerProtocol": {
          "Type": "String",
          "Description": "The listener protocol.\nValid values: HTTP, HTTPS, and QUIC.",
          "AllowedValues": [
            "HTTP",
            "HTTPS",
            "QUIC"
          ],
          "Default": "HTTP"
        }
      },
      "Resources": {
        "Listener": {
          "Type": "ALIYUN::ALB::Listener",
          "Properties": {
            "ListenerPort": {
              "Ref": "ListenerPort"
            },
            "DefaultActions": {
              "Ref": "DefaultActions"
            },
            "LoadBalancerId": {
              "Ref": "LoadBalancerId"
            },
            "ListenerProtocol": {
              "Ref": "ListenerProtocol"
            }
          }
        }
      },
      "Outputs": {
        "ListenerId": {
          "Description": "The ID of the listener.",
          "Value": {
            "Fn::GetAtt": [
              "Listener",
              "ListenerId"
            ]
          }
        }
      }
    }
  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      ListenerPort:
        Type: Number
        Description: |-
          The frontend port that is used by the ALB instance.
          Valid values: 1 to 65535.
        MinValue: 1
        MaxValue: 65535
        Default: 80
      DefaultActions:
        Type: Json
        Description: The actions of the rule.
        Default:
          - ForwardGroupConfig:
              ServerGroupTuples:
                - ServerGroupId: sgp-46ndzg2wz4v5mp****
            Type: ForwardGroup
      LoadBalancerId:
        Type: String
        Description: The ID of the ALB instance.
        Default: lb-bp1iilcd9ujny84z8****
      ListenerProtocol:
        Type: String
        Description: |-
          The listener protocol.
          Valid values: HTTP, HTTPS, and QUIC.
        AllowedValues:
          - HTTP
          - HTTPS
          - QUIC
        Default: HTTP
    Resources:
      Listener:
        Type: ALIYUN::ALB::Listener
        Properties:
          ListenerPort:
            Ref: ListenerPort
          DefaultActions:
            Ref: DefaultActions
          LoadBalancerId:
            Ref: LoadBalancerId
          ListenerProtocol:
            Ref: ListenerProtocol
    Outputs:
      ListenerId:
        Description: The ID of the listener.
        Value:
          Fn::GetAtt:
            - Listener
            - ListenerId