全部产品
Search
文档中心

Resource Orchestration Service:ALIYUN::SLB::Rule

更新时间:Jun 26, 2025

ALIYUN::SLB::Rule digunakan untuk menambahkan aturan pengalihan ke pendengar HTTP atau HTTPS.

Sintaksis

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

Properti

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

ListenerPort

Integer

Ya

Tidak

Port pendengar frontend yang digunakan oleh instance Server Load Balancer (SLB).

Nilai valid: 1 hingga 65535.

RuleList

List

Ya

Tidak

Aturan pengalihan yang ingin Anda tambahkan ke pendengar.

Anda dapat membuat hingga 10 aturan pengalihan dalam satu permintaan.

Setiap aturan pengalihan berisi properti berikut:

  • RuleName

  • Domain

  • Url

  • VServerGroupId

Anda harus menentukan setidaknya salah satu dari Domain dan URL.

Catatan

Kombinasi nilai Domain dan URL harus unik di dalam pendengar.

LoadBalancerId

String

Ya

Tidak

ID instance SLB.

Tidak ada.

ListenerProtocol

String

Tidak

Tidak

Protokol frontend yang digunakan oleh instance SLB.

Tidak ada.

Sintaksis RuleList

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

Properti RuleList

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

Url

String

Tidak

Tidak

Path yang ingin Anda tentukan dalam aturan pengalihan.

  • Path harus memiliki panjang 2 hingga 80 karakter.

  • Path harus dimulai dengan garis miring (/) dan dapat berisi huruf, angka, serta karakter khusus berikut:

    - / . % ? # &

Domain

String

Tidak

Tidak

Nama domain permintaan yang ingin Anda asosiasikan dengan aturan pengalihan.

Tidak ada.

VServerGroupId

String

Ya

Tidak

ID grup vServer yang ingin Anda asosiasikan dengan aturan pengalihan.

Tidak ada.

RuleName

String

Ya

Tidak

Nama aturan pengalihan.

Nama harus memiliki panjang 1 hingga 40 karakter dan dapat berisi huruf, angka, serta karakter khusus berikut:

- / . _.

Nama aturan pengalihan harus unik di dalam pendengar.

AdvancedSettings

Map

Tidak

Tidak

Konfigurasi lanjutan server.

Tidak ada.

Sintaksis 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 
}]

Properti AdvancedSettings

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

Cookie

String

Tidak

Tidak

Cookie yang dikonfigurasikan pada server.

Nama harus memiliki panjang 1 hingga 200 karakter dan hanya boleh berisi ASCII huruf dan angka. Tidak boleh mengandung koma (,), titik koma (;), spasi, dan tidak boleh dimulai dengan tanda dolar ($).

Anda harus menentukan properti ini ketika StickySession disetel ke on dan StickySessionType disetel ke server.

StickySession

String

Tidak

Tidak

Menentukan apakah akan mengaktifkan persistensi sesi.   

Nilai valid:

  • on: mengaktifkan persistensi sesi.

  • off: menonaktifkan persistensi sesi.

Catatan

Anda harus menentukan properti ini ketika ListenerSync disetel ke off. Jika Anda menyetel ListenerSync ke on, konfigurasi persistensi sesi pendengar digunakan.

HealthCheckConnectPort

Integer

Tidak

Tidak

Port backend yang ingin Anda gunakan untuk pemeriksaan kesehatan.  

Nilai valid: 1 hingga 65535.

Catatan

Properti ini berlaku ketika HealthCheck disetel ke on. Jika Anda membiarkan HealthCheckConnectPort kosong dan menyetel HealthCheck ke on, konfigurasi port backend pendengar digunakan.

HealthCheck

String

Tidak

Tidak

Menentukan apakah akan mengaktifkan pemeriksaan kesehatan.

Nilai valid:

  • on: mengaktifkan pemeriksaan kesehatan.

  • off: menonaktifkan pemeriksaan kesehatan.

Catatan

Properti ini berlaku ketika ListenerSync disetel ke off. Jika Anda menyetel ListenerSync ke on, konfigurasi pemeriksaan kesehatan pendengar digunakan.

HealthCheckURI

String

Tidak

Tidak

Uniform Resource Identifier (URI) yang ingin Anda gunakan untuk pemeriksaan kesehatan.

Properti ini berlaku ketika HealthCheck disetel ke on.

CookieTimeout

Integer

Tidak

Tidak

Periode timeout cookie.

Nilai valid: 1 hingga 86400. Unit: detik.

Catatan

Anda harus menentukan properti ini ketika StickySession disetel ke on dan StickySessionType disetel ke insert.

HealthCheckHttpCode

String

Tidak

Tidak

Kode status HTTP untuk pemeriksaan kesehatan yang berhasil.

Pisahkan beberapa kode status dengan koma (,).

Nilai valid: http_2xx, http_3xx, http_4xx, dan http_5xx.

Catatan

Properti ini berlaku ketika HealthCheck disetel ke on.

HealthyThreshold

Integer

Tidak

Tidak

Jumlah kali server backend yang tidak sehat harus lulus pemeriksaan kesehatan secara berturut-turut sebelum dinyatakan sehat.

Dalam hal ini, status kesehatan berubah dari gagal menjadi berhasil. Nilai valid: 2 hingga 10.

Catatan

Properti ini berlaku ketika HealthCheck disetel ke on.

UnhealthyThreshold

Integer

Tidak

Tidak

Jumlah kali server backend yang sehat harus gagal pemeriksaan kesehatan secara berturut-turut sebelum dinyatakan tidak sehat.

Dalam hal ini, status kesehatan berubah dari berhasil menjadi gagal. Nilai valid: 2 hingga 10.

Catatan

Properti ini berlaku ketika HealthCheck disetel ke on.

Scheduler

String

Tidak

Tidak

Algoritma penjadwalan.

Nilai valid:

  • wrr (default): Server backend dengan bobot lebih tinggi menerima lebih banyak permintaan daripada server backend dengan bobot lebih rendah.

  • rr: Permintaan didistribusikan ke server backend secara berurutan.

Catatan

Properti ini berlaku ketika ListenerSync disetel ke off. Jika Anda menyetel ListenerSync ke on, konfigurasi algoritma penjadwalan pendengar digunakan.

HealthCheckDomain

String

Tidak

Tidak

Nama domain yang ingin Anda gunakan untuk pemeriksaan kesehatan.

Nilai valid:

  • $_ip: alamat IP privat server backend. Jika Anda menyetel properti ini ke $_ip atau membiarkannya kosong, SLB menggunakan alamat IP privat setiap server backend sebagai nama domain untuk pemeriksaan kesehatan.

  • domain: nama domain. Nama domain harus memiliki panjang 1 hingga 80 karakter dan dapat berisi huruf, angka, titik (.), dan tanda hubung (-).

Catatan

Properti ini berlaku ketika HealthCheck disetel ke on.

ListenerSync

String

Tidak

Tidak

Menentukan apakah aturan pengalihan menggunakan algoritma penjadwalan, persistensi sesi, dan konfigurasi pemeriksaan kesehatan pendengar.

Nilai valid:

  • off: Aturan pengalihan tidak menggunakan konfigurasi pendengar tersebut. Anda dapat menentukan konfigurasi pemeriksaan kesehatan dan persistensi sesi kustom untuk aturan pengalihan.

  • on: Aturan pengalihan menggunakan konfigurasi pendengar tersebut.

HealthCheckInterval

Integer

Tidak

Tidak

Interval antara dua pemeriksaan kesehatan berturut-turut.

Nilai valid: 1 hingga 50. Unit: detik.

Catatan

Properti ini berlaku ketika HealthCheck disetel ke on.

HealthCheckTimeout

Integer

Tidak

Tidak

Periode timeout untuk respons pemeriksaan kesehatan.   

Jika server backend, seperti instance Elastic Compute Service (ECS), tidak mengirimkan respons dalam periode waktu yang ditentukan, pemeriksaan kesehatan gagal. Unit: detik. Nilai valid: 1 hingga 300.

StickySessionType

String

Tidak

Tidak

Metode yang ingin Anda gunakan untuk menangani cookie.   

Nilai valid:

  • insert: menyisipkan cookie.

  • server: menulis ulang cookie.

Nilai Kembali

Fn::GetAtt

Rules: detail aturan pengalihan.

Contoh

Format 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: |-
      Port pendengar HTTPS frontend dari instance Server Load Balancer. Nilai valid:
      1-65535
    MaxValue: 65535
    MinValue: 1
  RuleList:
    MinLength: 1
    Type: CommaDelimitedList
    Description: Aturan pengalihan yang akan ditambahkan.
    MaxLength: 10
  LoadBalancerId:
    Type: String
    Description: ID instance Server Load Balancer.
Outputs:
  Rules:
    Description: Daftar aturan pengalihan. Setiap elemen aturan berisi "RuleId".
    Value:
      Fn::GetAtt:
        - Rule
        - Rules

JSON format

{
  "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": "Port pendengar HTTPS frontend dari instance Server Load Balancer. Nilai valid:\n1-65535",
      "MaxValue": 65535,
      "MinValue": 1
    },
    "RuleList": {
      "MinLength": 1,
      "Type": "CommaDelimitedList",
      "Description": "Aturan pengalihan yang akan ditambahkan.",
      "MaxLength": 10
    },
    "LoadBalancerId": {
      "Type": "String",
      "Description": "ID instance Server Load Balancer."
    }
  },
  "Outputs": {
    "Rules": {
      "Description": "Daftar aturan pengalihan. Setiap elemen aturan berisi \"RuleId\".",
      "Value": {
        "Fn::GetAtt": ["Rule", "Rules"]
      }
    }
  }
}