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 | 是 | 否 | Server Load Balancer執行個體前端使用的連接埠。 | 取值範圍:1~65,535。 |
Bandwidth | Integer | 是 | 是 | 監聽的頻寬峰值。 | 取值範圍:-1或1~1000。 單位:Mbps。 取值說明:
|
BackendServerPort | Integer | 否 | 否 | Server Load Balancer執行個體後端使用的連接埠。 | 取值範圍:1~65,535。 |
LoadBalancerId | String | 是 | 否 | Server Load Balancer執行個體的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頭欄位擷取Server Load Balancer執行個體的監聽協議。 | 取值:
|
XForwardedFor_SLBID | String | 否 | 是 | 是否通過SLB-ID頭欄位擷取Server Load Balancer執行個體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頭欄位擷取用戶端串連Server Load Balancer執行個體所使用的連接埠。 | 取值:
|
XForwardedFor_SLBPORT | String | 否 | 是 | 是否通過X-Forwarded-Port頭欄位擷取Server Load Balancer執行個體的監聽連接埠。 | 取值:
|
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:Server Load Balancer執行個體的唯一標識。
ListenerPortsAndProtocol:Server Load Balancer執行個體前端使用的連接埠和協議。
樣本
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": {
}
}