全部產品
Search
文件中心

:ALIYUN::SLB::Listener

更新時間:Nov 13, 2024

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

是否開啟存取控制功能。

取值:

  • on(預設值):開啟存取控制功能。

  • off:關閉存取控制功能。

EnableHttp2

String

是否開啟HTTP2特性。

取值:

  • on:開啟HTTP2特性。

  • off :不開啟HTTP2特性。

AclId

String

監聽綁定的存取原則組ID。

當AclStatus取值為on時,必須指定該參數。

AclType

String

存取控制類型。

取值:

  • white:僅轉寄來自所選存取控制策略組中設定的IP地址或位址區段的請求。白名單適用於應用只允許特定IP訪問的情境。設定白名單存在一定業務風險。一旦設定白名單,只有白名單中的IP可以訪問負載平衡監聽。如果開啟了白名單訪問,但存取原則組中沒有添加任何IP,則負載平衡監聽不會轉寄請求。

  • black:來自所選存取控制策略組中設定的IP地址或位址區段的所有請求都不會轉寄。黑名單適用於應用只限制某些特定IP訪問的情境。如果開啟了黑名單訪問,但存取原則組中沒有添加任何IP,則負載平衡監聽會轉寄全部請求。當AclStatus參數取值為on時,必須指定該參數。

Protocol

String

網路通訊協定。

取值:

  • http

  • https

  • tcp

  • udp

ListenerPort

Integer

Server Load Balancer執行個體前端使用的連接埠。

取值範圍:1~65,535。

Bandwidth

Integer

監聽的頻寬峰值。

取值範圍:-1或1~1000。

單位:Mbps。

取值說明:

  • 針對按固定頻寬計費方式的公網類型執行個體,不同Listener上的Bandwidth的峰值總和不能超出在建立Server Load Balancer執行個體時設定的Bandwidth值,且不能將Listener上的Bandwidth值設定為-1。

  • 針對按使用流量計費方式的公網類型執行個體,可以選擇將Listener上的Bandwidth值設定為-1,表示不限制頻寬峰值。

BackendServerPort

Integer

Server Load Balancer執行個體後端使用的連接埠。

取值範圍:1~65,535。

LoadBalancerId

String

Server Load Balancer執行個體的ID。

HealthCheck

Map

健全狀態檢查設定。

更多資訊,請參見HealthCheck屬性

Persistence

Map

相關參數的持久化。

更多資訊,請參見Persistence屬性

Scheduler

String

調度演算法。

取值:

  • wrr(預設值):權重值越高的後端伺服器,被輪詢到的次數(機率)也越高。

  • wlc:按照訪問順序依次將外部請求分發到後端伺服器。

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

是否啟動監聽器。

取值:

  • true(預設值):啟動監聽器。

  • false:不啟動監聽器。

Gzip

String

指定是否啟用Gzip壓縮,以壓縮特定類型的檔案。

取值:

  • true(預設值):啟動。

  • false:不啟動。

TLSCipherPolicy

String

TLS安全性原則。

每個安全性原則包含可用於HTTPS的TLS協議版本和密碼套件。 

說明

當Protocol為https時,本參數生效。

AclIds

List

與要建立的接聽程式關聯的存取控制的ID列表。

如果AclStatus參數的值為on,則該參數必填。 AclIds的優先順序高於AclId。 

ProxyProtocolV2Enabled

Boolean

是否支援通過Proxy Protocol協議攜帶用戶端源地址到後端伺服器。

取值:

  • true:是。

  • false:否。

ConnectionDrainTimeout

Integer

設定串連優雅中斷逾時時間。

單位:秒。

取值範圍:10~900

Tags

List

標籤列表

更多資訊,請參見Tags屬性

ConnectionDrain

String

是否開啟串連優雅中斷。

取值:

  • on:是。

  • off:否。

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

  • 使用者自訂字串:長度為1~80個字元。可包含英文字母、數字、短劃線(-)和半形句號(.)。

說明

使用者佈建此參數為$_ip或空時,負載平衡會使用各後端伺服器的私網IP作為健全狀態檢查使用的網域名稱。

Interval

Integer

健全狀態檢查的時間間隔。

取值範圍:1~5。

單位:秒。

URI

String

用於健全狀態檢查的URI。

長度為1~80個字元。必須以正斜線(/)開頭,可包含英文字母、數字、短劃線(-)、正斜線(/)、半形句號(.)、百分比符號(%)、問號(?)、井號(#)和and(&)。

HttpCode

String

HTTP狀態代碼。

取值:

  • http_2xx(預設值)

  • http_3xx

  • http_4xx

  • http_5xx

多個HTTP狀態代碼之間用半形逗號(,)分隔。

HealthyThreshold

Integer

判定健全狀態檢查結果為success的閾值。即,健全狀態檢查連續成功多少次後,將後端伺服器的健全狀態檢查狀態由fail改為success。

取值範圍:1~10。

HealthCheckType

String

健全狀態檢查類型。

取值:

  • tcp

  • http

Timeout

Integer

每次健全狀態檢查響應的最大逾時時間。

取值範圍:1~50。

單位:秒。

說明

如果Timeout值小於Interval值,則Timeout無效,逾時時間為Interval的值。

UnhealthyThreshold

Integer

判定健全狀態檢查結果為fail的閾值。即,健全狀態檢查連續失敗多少次後,將後端伺服器的健全狀態檢查狀態由success改為fail。

取值範圍:1~10。

Port

Integer

用於健全狀態檢查的連接埠。

取值範圍:0~65,535。

Switch

String

是否啟用健全狀態檢查。

取值:

  • on:啟用健全狀態檢查。

  • off:禁用健全狀態檢查。

說明

當前僅對HTTP或HTTPS協議有效。如果未設定Switch,預設將禁用健全狀態檢查,除非已經配置了健全狀態檢查專案。

HealthCheckMethod

String

健全狀態檢查方法。

取值:

  • head

  • get

說明

當Protocol取值為httpshttp,且Switch取值為on時,該參數有效。

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

是否開啟會話保持。

取值:

  • on:開啟會話保持。

  • off:關閉會話保持。

    說明

    僅對HTTPHTTPS協議生效。

PersistenceTimeout

Integer

串連持久化的逾時時間。

取值範圍:0~1000。

預設值:0。表示關閉。

單位:秒。

CookieTimeout

Integer

Cookie逾時時間。

取值範圍:1~86,400。

單位:秒。

說明

當StickySession為on且StickySessionType為insert時,該參數必選。

XForwardedFor

String

是否通過X-Forwarded-Fort頭欄位擷取來訪者真實IP。

取值:

  • on:通過X-Forwarded-Fort頭欄位擷取來訪者真實IP。

  • off(預設值):不通過X-Forwarded-Fort頭欄位擷取來訪者真實IP。

XForwardedFor_proto

String

是否通過X-Forwarded-Proto頭欄位擷取Server Load Balancer執行個體的監聽協議。

取值:

  • on:通過X-Forwarded-Proto頭欄位擷取Server Load Balancer執行個體的監聽協議。

  • off(預設值):不通過X-Forwarded-Proto頭欄位擷取Server Load Balancer執行個體的監聽協議。

XForwardedFor_SLBID

String

是否通過SLB-ID頭欄位擷取Server Load Balancer執行個體ID。

取值:

  • on:通過SLB-ID頭欄位擷取Server Load Balancer執行個體ID。

  • off(預設值):不通過SLB-ID頭欄位擷取Server Load Balancer執行個體ID。

XForwardedFor_SLBIP

String

是否通過SLB-IP頭欄位擷取用戶端請求的真實IP。

取值:

  • on:通過SLB-IP頭欄位擷取用戶端請求的真實IP。

  • off(預設值):不通過SLB-IP頭欄位擷取用戶端請求的真實IP。

Cookie

String

伺服器上配置的Cookie。

長度為1~200個字元,不能以貨幣符號($)開頭。可包含英文字母和數字,不能包含半形逗號(,)、半形分號(;)和空格( )。

說明

當StickySession為on且StickySessionType為server時,該參數必選。

StickySessionType

String

Cookie的處理方式。

取值:

  • insert:植入Cookie。

  • server:重寫Cookie。

說明

當StickySession的值為on時,必須指定該參數。

XForwardedFor_ClientSrcPort

String

是否通過X-Forwarded-Client-srcport頭欄位擷取用戶端串連Server Load Balancer執行個體所使用的連接埠。

取值:

  • on:通過X-Forwarded-Client-srcport頭欄位擷取用戶端串連Server Load Balancer執行個體所使用的連接埠。

  • off(預設值):不通過X-Forwarded-Client-srcport頭欄位擷取用戶端串連Server Load Balancer執行個體所使用的連接埠。

XForwardedFor_SLBPORT

String

是否通過X-Forwarded-Port頭欄位擷取Server Load Balancer執行個體的監聽連接埠。

取值:

  • on:通過X-Forwarded-Port頭欄位擷取SLB執行個體使用的監聽協議。

  • off(預設值):不通過X-Forwarded-Port頭欄位擷取SLB執行個體使用的監聽協議。

HttpConfig文法

"HttpConfig": {
  "ForwardPort": Integer,
  "ListenerForward": String
}

HttpConfig屬性

屬性名稱

類型

必須

允許更新

描述

約束

ForwardPort

Integer

HTTP到HTTPS監聽轉送連接埠。

取值範圍:1~65,535。

預設值:443。

ListenerForward

String

是否將HTTP啟用為HTTPS轉寄。

取值:

  • on:啟用。

  • off(預設值):禁用。

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": {
  }
}