ALIYUN::SLB::Listener类型用于创建负载均衡监听。
语法
 {
  "Type": "ALIYUN::SLB::Listener",
  "Properties": {
    "MasterSlaveServerGroupId": String,
    "AclStatus": String,
    "Protocol": String,
    "AclId": String,
    "ServerCertificateId": String,
    "HealthCheck": Map,
    "RequestTimeout": Integer,
    "IdleTimeout": Integer,
    "ListenerPort": Integer,
    "HttpConfig": Map,
    "Bandwidth": Integer,
    "AclType": String,
    "BackendServerPort": Integer,
    "Scheduler": String,
    "LoadBalancerId": String,
    "CACertificateId": String,
    "Persistence": Map,
    "VServerGroupId": String,
    "Description": String,
    "PortRange": List,
    "StartListener": Boolean,
    "EnableHttp2": String,
    "Gzip": String,
    "TLSCipherPolicy": String,
    "AclIds": List,
    "ProxyProtocolV2Enabled": Boolean,
    "ConnectionDrainTimeout": Integer,
    "Tags": List,
    "FullNatEnabled": Boolean,
    "ConnectionDrain": String
  }
}属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 | 
| MasterSlaveServerGroupId | String | 否 | 否 | 主备服务器组ID。 | 无 | 
| AclStatus | String | 否 | 是 | 是否开启访问控制功能。 | 取值: 
 | 
| EnableHttp2 | String | 否 | 是 | 是否开启HTTP2特性。 | 取值: 
 | 
| AclId | String | 否 | 是 | 监听绑定的访问策略组ID。 | 当AclStatus取值为on时,必须指定该参数。 | 
| AclType | String | 否 | 是 | 访问控制类型。 | 取值: 
 | 
| Protocol | String | 是 | 否 | 网络协议。 | 取值: 
 | 
| ListenerPort | Integer | 是 | 否 | 负载均衡实例前端使用的端口。 | 取值范围:1~65,535。 | 
| Bandwidth | Integer | 是 | 是 | 监听的带宽峰值。 | 取值范围:-1或1~1000。 单位:Mbps。 取值说明: 
 | 
| BackendServerPort | Integer | 否 | 否 | 负载均衡实例后端使用的端口。 | 取值范围:1~65,535。 | 
| FullNatEnabled | Boolean | 否 | 是 | 当启用全NAT模式时,可以支持后端服务器作为客户端进行访问。 | 默认值为false。 注意:仅对TCP或UDP监听器生效。 | 
| LoadBalancerId | String | 是 | 否 | 负载均衡实例的ID。 | 无 | 
| HealthCheck | Map | 否 | 是 | 健康检查设置。 | 更多信息,请参见HealthCheck 属性。 | 
| Persistence | Map | 否 | 是 | 相关参数的持久化。 | 更多信息,请参见Persistence 属性。 | 
| Scheduler | String | 否 | 否 | 调度算法。 | 取值: 
 | 
| CACertificateId | String | 否 | 否 | CA证书ID。 | 只对HTTPS协议有效。 | 
| ServerCertificateId | String | 否 | 是 | 服务器证书的ID。 | 只对HTTPS协议有效,且必须指定该参数。 | 
| VServerGroupId | String | 否 | 是 | 服务器组ID。 | 无 | 
| RequestTimeout | Integer | 否 | 否 | 请求超时时间。 | 取值范围:1~180。 单位:秒。 | 
| IdleTimeout | Integer | 否 | 否 | 连接空闲超时时间。 | 取值范围:1~60。 单位:秒。 | 
| HttpConfig | Map | 否 | 否 | 用于配置HTTP协议。 | 更多信息,请参见HttpConfig 属性。 | 
| Description | String | 否 | 否 | 监听的描述信息。 | 长度为1~80个字符。可包含英文字母、汉字、数字、短划线(-)、正斜线(/)、半角句号(.)和下划线(_)。 | 
| PortRange | List | 否 | 否 | 监听的端口范围。 | 目前仅支持开启全端口监听,即 StartPort=1,EndPort=65,535。 更多信息,请参见PortRange 属性。 | 
| StartListener | Boolean | 否 | 否 | 是否启动监听器。 | 取值: 
 | 
| Gzip | String | 否 | 是 | 指定是否启用Gzip压缩,以压缩特定类型的文件。 | 取值: 
 | 
| TLSCipherPolicy | String | 否 | 是 | TLS安全策略。 | 每个安全策略包含可用于HTTPS的TLS协议版本和密码套件。 说明  当Protocol为 | 
| AclIds | List | 否 | 是 | 与要创建的侦听器关联的访问控制的ID列表。 | 如果 | 
| ProxyProtocolV2Enabled | Boolean | 否 | 是 | 是否支持通过Proxy Protocol协议携带客户端源地址到后端服务器。 | 取值: 
 | 
| ConnectionDrainTimeout | Integer | 否 | 是 | 设置连接优雅中断超时时间。 | 单位:秒。 取值范围:10~900。 | 
| Tags | List | 否 | 是 | 标签列表 | 更多信息,请参见Tags属性。 | 
| ConnectionDrain | String | 否 | 是 | 是否开启连接优雅中断。 | 取值: 
 | 
HealthCheck 语法
"HealthCheck": {
  "Domain": String,
  "Interval": Integer,
  "URI": String,
  "HttpCode": String,
  "HealthyThreshold": Integer,
  "HealthCheckType": String,
  "Timeout": Integer,
  "UnhealthyThreshold": Integer,
  "Port": Integer,
  "Switch": String,
  "HealthCheckMethod": String,
  "Req": String,
  "Exp": String
}HealthCheck 属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 | 
| Domain | String | 否 | 否 | 用于健康检查的域名。 | 取值: 
 说明  用户设置此参数为$_ip或空时,负载均衡会使用各后端服务器的私网IP作为健康检查使用的域名。 | 
| Interval | Integer | 否 | 否 | 健康检查的时间间隔。 | 取值范围:1~5。 单位:秒。 | 
| URI | String | 否 | 否 | 用于健康检查的URI。 | 长度为1~80个字符。必须以正斜线(/)开头,可包含英文字母、数字、短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、问号(?)、井号(#)和and(&)。 | 
| HttpCode | String | 否 | 否 | HTTP状态码。 | 取值: 
 多个HTTP状态码之间用半角逗号(,)分隔。 | 
| HealthyThreshold | Integer | 否 | 否 | 判定健康检查结果为success的阈值。即,健康检查连续成功多少次后,将后端服务器的健康检查状态由fail改为success。 | 取值范围:1~10。 | 
| HealthCheckType | String | 否 | 否 | 健康检查类型。 | 取值: 
 | 
| Timeout | Integer | 否 | 否 | 每次健康检查响应的最大超时时间。 | 取值范围:1~50。 单位:秒。 说明  如果Timeout值小于Interval值,则Timeout无效,超时时间为Interval的值。 | 
| UnhealthyThreshold | Integer | 否 | 否 | 判定健康检查结果为fail的阈值。即,健康检查连续失败多少次后,将后端服务器的健康检查状态由success改为fail。 | 取值范围:1~10。 | 
| Port | Integer | 否 | 否 | 用于健康检查的端口。 | 取值范围:0~65,535。 | 
| Switch | String | 否 | 否 | 是否启用健康检查。 | 取值: 
 说明  当前仅对HTTP或HTTPS协议有效。如果未设置Switch,默认将禁用健康检查,除非已经配置了健康检查项目。 | 
| HealthCheckMethod | String | 否 | 否 | 健康检查方法。 | 取值: 
 说明  当Protocol取值为 | 
| Req | String | 否 | 否 | UDP监听健康检查的请求字符串仅限于字母和数字 | 最大长度为64个字符。 | 
| Exp | String | 否 | 否 | UDP监听健康检查的响应字符串仅限于字母和数字。 | 最大长度为64个字符。 | 
Persistence 语法
"Persistence": {
  "PersistenceTimeout": Integer,
  "CookieTimeout": Integer,
  "XForwardedFor": String,
  "XForwardedFor_SLBID": String,
  "XForwardedFor_proto": String,
  "XForwardedFor_SLBIP": String,
  "Cookie": String,
  "StickySession": String,
  "StickySessionType": String,
  "XForwardedFor_ClientSrcPort": String,
  "XForwardedFor_SLBPORT": String
}Persistence 属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 | 
| StickySession | String | 否 | 是 | 是否开启会话保持。 | 取值: 
 | 
| PersistenceTimeout | Integer | 否 | 是 | 连接持久化的超时时间。 | 取值范围:0~1000。 默认值:0。表示关闭。 单位:秒。 | 
| CookieTimeout | Integer | 否 | 是 | Cookie超时时间。 | 取值范围:1~86,400。 单位:秒。 说明  当StickySession为on且StickySessionType为insert时,该参数必选。 | 
| XForwardedFor | String | 否 | 是 | 是否通过X-Forwarded-Fort头字段获取来访者真实IP。 | 取值: 
 | 
| XForwardedFor_proto | String | 否 | 是 | 是否通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议。 | 取值: 
 | 
| XForwardedFor_SLBID | String | 否 | 是 | 是否通过SLB-ID头字段获取负载均衡实例ID。 | 取值: 
 | 
| XForwardedFor_SLBIP | String | 否 | 是 | 是否通过SLB-IP头字段获取客户端请求的真实IP。 | 取值: 
 | 
| Cookie | String | 否 | 是 | 服务器上配置的Cookie。 | 长度为1~200个字符,不能以美元符号($)开头。可包含英文字母和数字,不能包含半角逗号(,)、半角分号(;)和空格( )。 说明  当StickySession为on且StickySessionType为server时,该参数必选。 | 
| StickySessionType | String | 否 | 是 | Cookie的处理方式。 | 取值: 
 说明  当StickySession的值为on时,必须指定该参数。 | 
| XForwardedFor_ClientSrcPort | String | 否 | 是 | 是否通过X-Forwarded-Client-srcport头字段获取客户端连接负载均衡实例所使用的端口。 | 取值: 
 | 
| XForwardedFor_SLBPORT | String | 否 | 是 | 是否通过X-Forwarded-Port头字段获取负载均衡实例的监听端口。 | 取值: 
 | 
HttpConfig 语法
"HttpConfig": {
  "ForwardPort": Integer,
  "ListenerForward": String
}HttpConfig 属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 | 
| ForwardPort | Integer | 否 | 否 | HTTP到HTTPS监听转发端口。 | 取值范围:1~65,535。 默认值:443。 | 
| ListenerForward | String | 否 | 否 | 是否将HTTP启用为HTTPS转发。 | 取值: 
 | 
PortRange 语法
"PortRange": [
  {
    "StartPort": Integer,
    "EndPort": Integer
  }
]PortRange 属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 | 
| StartPort | Integer | 是 | 否 | 起始端口。 | 取值:1。 | 
| EndPort | Integer | 是 | 否 | 结束端口。 | 取值:65,535。 | 
Tags 语法
"Tags": [
  {
    "Key": String,
    "Value": String
  }
]Tags 属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 | 
| Key | String | 是 | 否 | 标签键。 | 无 | 
| Value | String | 否 | 否 | 标签值。 | 无 | 
返回值
Fn::GetAtt
- LoadBalancerId:负载均衡实例的唯一标识。 
- ListenerPortsAndProtocol:负载均衡实例前端使用的端口和协议。 
- Arn:阿里云资源名称。 
示例
YAML格式
ROSTemplateFormatVersion: '2015-09-01'
Description: Test SLB Listener
Parameters:
  SlbInstanceId:
    AssociationProperty: ALIYUN::SLB::Instance::InstanceId
    Type: String
Resources:
  Listener:
    Type: ALIYUN::SLB::Listener
    Properties:
      BackendServerPort: 8080
      Bandwidth: 50
      ListenerPort: 80
      LoadBalancerId:
        Ref: SlbInstanceId
      Protocol: https
      Scheduler: wrr
Outputs: {}JSON格式 
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Test SLB Listener",
  "Parameters": {
    "SlbInstanceId": {
      "AssociationProperty": "ALIYUN::SLB::Instance::InstanceId",
      "Type": "String"
    }
  },
  "Resources": {
    "Listener": {
      "Type": "ALIYUN::SLB::Listener",
      "Properties": {
        "BackendServerPort": 8080,
        "Bandwidth": 50,
        "ListenerPort": 80,
        "LoadBalancerId": {
          "Ref": "SlbInstanceId"
        },
        "Protocol": "https",
        "Scheduler": "wrr"
      }
    }
  },
  "Outputs": {
  }
}