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
  }
}

属性

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

默认值:60。

单位:秒。

如果在超时时间内后端服务器一直没有响应,负载均衡将放弃等待,并给客户端返回HTTP 504错误码。
ListenerPort Integer 监听端口。 取值范围:1~65,535。
Http2Enabled Boolean 是否开启HTTP/2特性。 取值:
  • true(默认值):开启。
  • false:关闭。
说明 仅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(默认值):开启。
  • false:关闭。
SecurityPolicyId String 安全策略ID。 支持系统安全策略和自定义安全策略。

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

说明 仅HTTPS监听支持此参数。
ListenerDescription String 监听的描述信息。 长度为2~256个字符。
XForwardedForConfig Map XForward字段配置信息。 更多信息,请参见XForwardedForConfig属性

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
}

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监听支持指定该参数。

返回值

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"
        ]
      }
    }
  }
}