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,
"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。 |
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:负载均衡实例前端使用的端口和协议。
示例
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": {
}
}