全部產品
Search
文件中心

:ALIYUN::SLB::Rule

更新時間:Feb 05, 2024

ALIYUN::SLB::Rule類型用於為指定的HTTP或HTTPS監聽添加轉寄規則。

文法

{
  "Type": "ALIYUN::SLB::Rule",
  "Properties": {
    "ListenerPort": Integer,
    "RuleList": List,
    "LoadBalancerId": String,
    "ListenerProtocol": String
  }
}

屬性

屬性名稱

類型

必須

允許更新

描述

約束

ListenerPort

Integer

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

取值範圍:1~65535。

RuleList

List

要添加的轉寄規則。

一次請求中,最多可添加10條轉寄規則。

每條轉寄規則包含以下參數:

  • RuleName

  • Domain

  • Url

  • VServerGroupId

Domain和URL兩者必須指定一個,也可以同時指定。

說明

Domain和URL的組合在同一個監聽內必須唯一。

LoadBalancerId

String

Server Load Balancer執行個體ID。

ListenerProtocol

String

執行個體前端使用的協議。

RuleList文法

"RuleList": [
  {
    "Url": String,
    "Domain": String,
    "VServerGroupId": String,
    "RuleName": String,
    "AdvancedSettings": Map
  }
]

RuleList屬性

屬性名稱

類型

必須

允許更新

描述

約束

Url

String

問路徑

  • 長度為2~80個字元。

  • 以正斜線(/)開頭,可包含字母、數字和以下特殊字元:

    -/.%?#&

Domain

String

轉寄規則關聯的請求網域名稱。

VServerGroupId

String

該轉寄規則的目標虛擬伺服器組ID。

RuleName

String

轉寄規則名稱。

長度為1~40個字元,可包含字母、數字和以下特殊字元:

-/._

同一個監聽內不同規則的名稱必須唯一。

AdvancedSettings

Map

伺服器的進階配置。

AdvancedSettings文法

"AdvancedSettings": [{ 
  "Cookie": String,
  "StickySession": String,
  "HealthCheckConnectPort": Integer,
  "StickySessionType": String,
  "HealthCheckTimeout": Integer,
  "HealthCheck": String,
  "HealthCheckURI": String,
  "CookieTimeout": Integer,
  "HealthCheckHttpCode": String,
  "HealthyThreshold": Integer,
  "UnhealthyThreshold": Integer,
  "Scheduler": String,
  "HealthCheckDomain": String,
  "ListenerSync": String,
  "HealthCheckInterval": Integer 
}]

AdvancedSettings屬性

屬性名稱

類型

必須

允許更新

描述

約束

Cookie

String

伺服器上配置的Cookie。

長度為1~200個字元,只能包含ASCII英文字母和數字字元,不能包含逗號、分號或空格,也不能以$開頭。

StickySessiononStickySessionTypeserver時,該參數必選且有效。

StickySession

String

是否啟用會話持久。  

取值:

  • on:啟用會話持久。

  • off:關閉會話持久。

說明

ListenerSyncoff時必選且有效,為on時表明與監聽配置一致。

HealthCheckConnectPort

Integer

健全狀態檢查的後端伺服器的連接埠。 

取值範圍:1~65535。

說明

HealthCheckon時該參數有效,若為空白且當HealthCheckon,表明預設使用監聽後端連接埠配置。

HealthCheck

String

是否開啟健全狀態檢查。

取值:

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

  • off:關閉健全狀態檢查。

說明

ListenerSyncoff時有效,為on時表明與監聽配置一致。

HealthCheckURI

String

用於健全狀態檢查的URI。

HealthCheckon時,該參數有效。

CookieTimeout

Integer

Cookie逾時時間。

取值:1~86400秒。

說明

StickySessiononStickySessionTypeinsert時,該參數必選且有效。

HealthCheckHttpCode

String

健全狀態檢查正常的HTTP狀態代碼。

多個狀態代碼用逗號分隔。

有效值:http_2xx、http_3xx、http_4xx、http_5xx。

說明

HealthCheckon時,該參數有效。

HealthyThreshold

Integer

健康檢的閾值。

健全狀態檢查連續成功多少次後,將後端伺服器的健全狀態檢查狀態由失敗判定為成功。取值:2~10

說明

HealthCheckon時,該參數有效。

UnhealthyThreshold

Integer

不健康檢的閾值。

健全狀態檢查連續失敗多少次後,將後端伺服器的健全狀態檢查狀態由成功判定為失敗。取值:2~10

說明

HealthCheckon時,該參數有效。

Scheduler

String

調度演算法。

取值:

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

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

說明

ListenerSyncoff時有效,為on時表明與監聽配置一致。

HealthCheckDomain

String

用於健全狀態檢查的網域名稱。

取值:

  • $_ip: 後端伺服器的私網IP。當指定了IP或該參數未指定時,負載平衡會使用各後端伺服器的私網IP當作健全狀態檢查使用的網域名稱。

  • domain:網域名稱長度為1~80字元,只能包含字母、數字、半形句號(.)和短劃線(-)。

說明

HealthCheckon時,該參數有效。

ListenerSync

String

轉寄規則是否從監聽上繼承健全狀態檢查、會話保持和調度演算法配置。

取值:

  • off:不繼承監聽配置,轉寄規則自訂健全狀態檢查及會話保持配置。

  • on:繼承監聽配置。

HealthCheckInterval

Integer

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

取值:1~50秒。

說明

HealthCheckon時,該參數有效。

HealthCheckTimeout

Integer

健全狀態檢查響應的逾時時間。  

如果後端伺服器(如ECS執行個體)在指定的逾時時間內沒有返回健全狀態檢查響應,則表示該伺服器健全狀態檢查失敗。 單位:秒。 取值範圍:1 ~ 300。

StickySessionType

String

用於處理cookie的方法。  

取值:

  • insert:插入一個cookie

  • server:重寫cookie。

傳回值

Fn::GetAtt

Rules:轉寄規則列表。

樣本

YAML樣本

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  Rule:
    Type: ALIYUN::SLB::Rule
    Properties:
      ListenerPort:
        Ref: ListenerPort
      RuleList:
        Fn::Split:
          - ','
          - Ref: RuleList
          - Ref: RuleList
      LoadBalancerId:
        Ref: LoadBalancerId
Parameters:
  ListenerPort:
    Type: Number
    Description: |-
      The front-end HTTPS listener port of the Server Load Balancer instance. Valid value:
      1-65535
    MaxValue: 65535
    MinValue: 1
  RuleList:
    MinLength: 1
    Type: CommaDelimitedList
    Description: The forwarding rules to add.
    MaxLength: 10
  LoadBalancerId:
    Type: String
    Description: The ID of Server Load Balancer instance.
Outputs:
  Rules:
    Description: A list of forwarding rules. Each element of rules contains "RuleId".
    Value:
      Fn::GetAtt:
        - Rule
        - Rules

JSON樣本

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "Rule": {
      "Type": "ALIYUN::SLB::Rule",
      "Properties": {
        "ListenerPort": {
          "Ref": "ListenerPort"
        },
        "RuleList": {
          "Fn::Split": [",", {
            "Ref": "RuleList"
          }, {
            "Ref": "RuleList"
          }]
        },
        "LoadBalancerId": {
          "Ref": "LoadBalancerId"
        }
      }
    }
  },
  "Parameters": {
    "ListenerPort": {
      "Type": "Number",
      "Description": "The front-end HTTPS listener port of the Server Load Balancer instance. Valid value:\n1-65535",
      "MaxValue": 65535,
      "MinValue": 1
    },
    "RuleList": {
      "MinLength": 1,
      "Type": "CommaDelimitedList",
      "Description": "The forwarding rules to add.",
      "MaxLength": 10
    },
    "LoadBalancerId": {
      "Type": "String",
      "Description": "The ID of Server Load Balancer instance."
    }
  },
  "Outputs": {
    "Rules": {
      "Description": "A list of forwarding rules. Each element of rules contains \"RuleId\".",
      "Value": {
        "Fn::GetAtt": ["Rule", "Rules"]
      }
    }
  }
}