全部产品
Search
文档中心

Resource Orchestration Service:ALIYUN::SLB::Listener

更新时间:Jul 02, 2025

ALIYUN::SLB::Listener digunakan untuk membuat pendengar Server Load Balancer (SLB).

Sintaks

 {
  "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,
    "FullNatEnabled": Boolean,
    "ConnectionDrain": String
  }
}

Properti

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

MasterSlaveServerGroupId

String

Tidak

Tidak

ID grup server utama/sekunder.

Tidak ada.

AclStatus

String

Tidak

Ya

Menentukan apakah akan mengaktifkan kontrol akses.

Nilai yang valid:

  • on (default)

  • off

EnableHttp2

String

Tidak

Ya

Menentukan apakah akan mengaktifkan HTTP/2.

Nilai yang valid:

  • on

  • off

AclId

String

Tidak

Ya

ID daftar kontrol akses (ACL) yang ingin Anda asosiasikan dengan pendengar.

Anda harus menentukan properti ini ketika AclStatus diatur ke on.

AclType

String

Tidak

Ya

Jenis ACL.

Nilai yang valid:

  • white: daftar putih. Hanya permintaan dari alamat IP atau blok CIDR dalam ACL yang diteruskan. Anda dapat menggunakan daftar putih dalam skenario di mana Anda ingin mengizinkan akses hanya dari alamat IP tertentu ke aplikasi. Risiko mungkin timbul jika daftar putih dikonfigurasi secara tidak benar. Setelah Anda mengonfigurasi daftar putih, hanya alamat IP yang ditambahkan ke daftar putih yang dapat mengakses pendengar. Jika Anda mengaktifkan daftar putih tetapi tidak menambahkan alamat IP ke daftar putih, pendengar tidak meneruskan permintaan.

  • black: daftar hitam. Semua permintaan dari alamat IP atau blok CIDR dalam ACL tidak diteruskan. Anda dapat menggunakan daftar hitam dalam skenario di mana Anda ingin menolak akses hanya dari alamat IP tertentu ke aplikasi. Jika Anda mengaktifkan daftar hitam tetapi tidak menambahkan alamat IP ke daftar hitam, pendengar meneruskan semua permintaan. Anda harus menentukan properti ini ketika AclStatus diatur ke on.

Protokol

String

Ya

Tidak

Protokol jaringan.

Nilai yang valid:

  • http

  • https

  • tcp

  • udp

ListenerPort

Integer

Ya

Tidak

Port frontend dari instance SLB.

Nilai yang valid: 1 hingga 65535.

Bandwidth

Integer

Ya

Ya

Bandwidth maksimum dari pendengar.

Nilai yang valid: 1 hingga 1000 dan -1.

Unit: Mbit/s.

Nilai properti ini harus memenuhi persyaratan berikut:

  • Untuk instance SLB yang menghadap internet dengan pembayaran berdasarkan bandwidth, Anda tidak dapat mengatur properti ini ke -1. Jumlah nilai bandwidth maksimum yang Anda tentukan untuk semua pendengar dari instance SLB tidak boleh melebihi nilai bandwidth dari instance SLB.

  • Untuk instance SLB yang menghadap internet dengan pembayaran berdasarkan transfer data, Anda dapat mengatur properti ini ke -1. Nilai -1 menentukan tidak ada batas bandwidth maksimum.

BackendServerPort

Integer

Tidak

Tidak

Port backend dari instance SLB.

Nilai yang valid: 1 hingga 65535.

FullNatEnabled

Boolean

Tidak

Ya

Menentukan apakah akan mengaktifkan mode NAT penuh untuk menggunakan server backend sebagai klien untuk akses.

Nilai default: false.

Properti ini hanya berlaku untuk pendengar TCP atau UDP.

LoadBalancerId

String

Ya

Tidak

ID instance SLB.

Tidak ada.

HealthCheck

Map

Tidak

Ya

Konfigurasi pemeriksaan kesehatan.

Untuk informasi lebih lanjut, lihat properti HealthCheck.

Persistence

Map

Tidak

Ya

Konfigurasi persistensi.

Untuk informasi lebih lanjut, lihat properti Persistence.

Scheduler

String

Tidak

Tidak

Algoritma routing.

Nilai yang valid:

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

  • wlc: Permintaan diteruskan ke server backend secara berurutan.

CACertificateId

String

Tidak

Tidak

ID sertifikat otoritas sertifikasi (CA).

Properti ini hanya berlaku ketika Protokol diatur ke https.

ServerCertificateId

String

Tidak

Ya

ID sertifikat server.

Anda harus menentukan properti ini hanya ketika Protokol diatur ke https.

VServerGroupId

String

Tidak

Ya

ID grup server.

Tidak ada.

RequestTimeout

Integer

Tidak

Tidak

Periode timeout permintaan.

Nilai yang valid: 1 hingga 180.

Unit: detik.

IdleTimeout

Integer

Tidak

Tidak

Periode timeout koneksi idle.

Nilai yang valid: 1 hingga 60.

Unit: detik.

HttpConfig

Map

Tidak

Tidak

Konfigurasi HTTP.

Untuk informasi lebih lanjut, lihat properti HttpConfig.

Description

String

Tidak

Tidak

Deskripsi pendengar.

Deskripsi harus memiliki panjang 1 hingga 80 karakter, dan dapat berisi huruf, angka, tanda hubung (-), garis miring (/), titik (.), dan garis bawah (_).

PortRange

List

Tidak

Tidak

Range port pendengar.

Anda harus mengaktifkan semua port. Untuk mengaktifkan semua port, atur StartPort ke 1 dan EndPort ke 65535.

Untuk informasi lebih lanjut, lihat properti PortRange.

StartListener

Boolean

Tidak

Tidak

Menentukan apakah akan memulai pendengar.

Nilai yang valid:

  • true (default)

  • false

Gzip

String

Tidak

Ya

Menentukan apakah akan mengaktifkan kompresi Gzip untuk menekan jenis file tertentu.

Nilai yang valid:

  • true (default)

  • false

TLSCipherPolicy

String

Tidak

Ya

Kebijakan transport layer security (TLS).

Kebijakan TLS berisi versi protokol TLS dan cipher suite yang tersedia untuk HTTPS.  

Catatan

Properti ini berlaku ketika Protokol diatur ke https.

AclIds

List

Tidak

Ya

ID ACL yang ingin Anda asosiasikan dengan pendengar.

Anda harus menentukan properti ini ketika AclStatus diatur ke on. Properti AclIds memiliki prioritas lebih tinggi daripada properti AclId.  

ProxyProtocolV2Enabled

Boolean

Tidak

Ya

Menentukan apakah akan menggunakan protokol Proxy untuk meneruskan alamat IP klien sumber ke server backend.

Nilai yang valid:

  • true

  • false

ConnectionDrainTimeout

Integer

Tidak

Ya

Periode timeout drainase koneksi.

Unit: detik.

Nilai yang valid: 10 hingga 900.

Tags

List

Tidak

Ya

Tag.

Untuk informasi lebih lanjut, lihat properti Tags.

ConnectionDrain

String

Tidak

Ya

Menentukan apakah akan mengaktifkan connection draining.

Nilai yang valid:

  • on

  • off

Sintaks 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
}

Properti HealthCheck

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

Domain

String

Tidak

Tidak

Nama domain yang ingin Anda gunakan untuk pemeriksaan kesehatan.

Nilai yang valid:

  • $_ip.

  • String kustom: String kustom yang Anda tentukan harus memiliki panjang 1 hingga 80 karakter, dan dapat berisi huruf, angka, tanda hubung (-), dan titik (.).

  • Null.

Catatan

Jika Anda mengatur properti ini ke $_ip atau Null, SLB menggunakan alamat IP privat setiap server backend sebagai nama domain untuk melakukan pemeriksaan kesehatan.

Interval

Integer

Tidak

Tidak

Interval antara dua pemeriksaan kesehatan berturut-turut.

Nilai yang valid: 1 hingga 5.

Unit: detik.

URI

String

Tidak

Tidak

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

URI harus memiliki panjang 1 hingga 80 karakter, dan harus dimulai dengan garis miring (/). Dapat berisi huruf, angka, dan karakter khusus berikut: - / . % ? # &

HttpCode

String

Tidak

Tidak

Kode status HTTP.

Nilai yang valid:

  • http_2xx (default)

  • http_3xx

  • http_4xx

  • http_5xx

Pisahkan beberapa kode status HTTP dengan koma (,).

HealthyThreshold

Integer

Tidak

Tidak

Ambang batas yang digunakan untuk menentukan apakah server backend sehat. Jumlah kali server backend yang tidak sehat harus lulus pemeriksaan kesehatan secara berturut-turut sebelum dinyatakan sehat.

Nilai yang valid: 1 hingga 10.

HealthCheckType

String

Tidak

Tidak

Jenis pemeriksaan kesehatan.

Nilai yang valid:

  • tcp

  • http

Timeout

Integer

Tidak

Tidak

Periode timeout maksimum dari respons pemeriksaan kesehatan.

Nilai yang valid: 1 hingga 50.

Unit: detik.

Catatan

Jika nilai Timeout lebih kecil dari nilai Interval, Timeout tidak berlaku. Dalam hal ini, nilai Interval menentukan periode timeout maksimum.

UnhealthyThreshold

Integer

Tidak

Tidak

Ambang batas yang digunakan untuk menentukan apakah server backend tidak sehat. Jumlah kali server backend yang sehat harus gagal dalam pemeriksaan kesehatan secara berturut-turut sebelum dinyatakan tidak sehat.

Nilai yang valid: 1 hingga 10.

Port

Integer

Tidak

Tidak

Port yang ingin Anda gunakan untuk pemeriksaan kesehatan.

Nilai yang valid: 0 hingga 65535.

Switch

String

Tidak

Tidak

Menentukan apakah akan mengaktifkan fitur pemeriksaan kesehatan.

Nilai yang valid:

  • on

  • off

Catatan

Properti ini hanya berlaku ketika Protokol diatur ke http atau https. Jika Anda membiarkan Switch kosong, fitur pemeriksaan kesehatan dinonaktifkan secara default kecuali item pemeriksaan kesehatan sudah dikonfigurasi.

HealthCheckMethod

String

Tidak

Tidak

Metode yang ingin Anda gunakan untuk melakukan pemeriksaan kesehatan.

Nilai yang valid:

  • head

  • get

Catatan

Properti ini berlaku ketika Protokol diatur ke https atau http dan Switch diatur ke on.

Req

String

Tidak

Tidak

String permintaan untuk pemeriksaan kesehatan pendengar UDP.

String dapat memiliki panjang hingga 64 karakter, dan hanya dapat berisi huruf dan angka.

Exp

String

Tidak

Tidak

String respons untuk pemeriksaan kesehatan pendengar UDP.

String dapat memiliki panjang hingga 64 karakter, dan hanya dapat berisi huruf dan angka.

Sintaks 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
}

Properti Persistence

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

StickySession

String

Tidak

Ya

Menentukan apakah akan mengaktifkan persistensi sesi.

Nilai yang valid:

  • on

  • off

    Catatan

    Properti ini hanya berlaku ketika Protokol diatur ke http atau https.

PersistenceTimeout

Integer

Tidak

Ya

Periode timeout persistensi sesi.

Nilai yang valid: 0 hingga 1000.

Nilai default: 0. Nilai 0 menentukan bahwa persistensi sesi dinonaktifkan.

Unit: detik.

CookieTimeout

Integer

Tidak

Ya

Periode timeout cookie.

Nilai yang valid: 1 hingga 86400.

Unit: detik.

Catatan

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

XForwardedFor

String

Tidak

Ya

Menentukan apakah akan menggunakan header X-Forwarded-Fort untuk menanyakan alamat IP asli klien.

Nilai yang valid:

  • on

  • off (default)

XForwardedFor_proto

String

Tidak

Ya

Menentukan apakah akan menggunakan header X-Forwarded-Proto untuk menanyakan protokol pendengar instance SLB.

Nilai yang valid:

  • on

  • off (default)

XForwardedFor_SLBID

String

Tidak

Ya

Menentukan apakah akan menggunakan header SLB-ID untuk menanyakan ID instance SLB.

Nilai yang valid:

  • on

  • off (default)

XForwardedFor_SLBIP

String

Tidak

Ya

Menentukan apakah akan menggunakan header SLB-IP untuk menanyakan alamat IP asli yang diminta oleh klien.

Nilai yang valid:

  • on

  • off (default)

Cookie

String

Tidak

Ya

Cookie yang ingin Anda konfigurasikan untuk server.

Cookie harus memiliki panjang 1 hingga 200 karakter, dan tidak dapat dimulai dengan tanda dolar ($). Dapat berisi huruf dan angka, dan tidak dapat berisi koma (,), titik koma (;), atau spasi.

Catatan

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

StickySessionType

String

Tidak

Ya

Metode yang ingin Anda gunakan untuk menangani cookie.

Nilai yang valid:

  • insert: menyisipkan cookie.

  • server: menulis ulang cookie.

Catatan

Anda harus menentukan properti ini ketika StickySession diatur ke on.

XForwardedFor_ClientSrcPort

String

Tidak

Ya

Menentukan apakah akan menggunakan header X-Forwarded-Client-srcport untuk menanyakan port yang digunakan oleh klien untuk mengakses instance SLB.

Nilai yang valid:

  • on

  • off (default)

XForwardedFor_SLBPORT

String

Tidak

Ya

Menentukan apakah akan menggunakan header X-Forwarded-Port untuk menanyakan port pendengar instance SLB.

Nilai yang valid:

  • on

  • off (default)

Sintaks HttpConfig

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

Properti HttpConfig

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

ForwardPort

Integer

Tidak

Tidak

Port pendengar yang ingin Anda gunakan untuk mengarahkan ulang permintaan HTTP ke HTTPS.

Nilai yang valid: 1 hingga 65535.

Nilai default: 443.

ListenerForward

String

Tidak

Tidak

Menentukan apakah akan mengaktifkan pengalihan dari HTTP ke HTTPS.

Nilai yang valid:

  • on

  • off (default)

Sintaks PortRange

"PortRange": [
  {
    "StartPort": Integer,
    "EndPort": Integer
  }
]

Properti PortRange

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

StartPort

Integer

Ya

Tidak

Port awal.

Atur nilainya ke 1.

EndPort

Integer

Ya

Tidak

Port akhir.

Atur nilainya ke 65535.

Sintaks Tags

"Tags": [
  {
    "Key": String,
    "Value": String
  }
]

Properti Tags

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

Key

String

Ya

Tidak

Kunci tag.

Tidak ada.

Value

String

Tidak

Tidak

Nilai tag.

Tidak ada.

Nilai Kembali

Fn::GetAtt

  • LoadBalancerId: ID instance SLB.

  • ListenerPortsAndProtocol: port frontend dan protokol yang digunakan oleh instance SLB.

  • Arn: Nama Sumber Daya Alibaba Cloud (ARN).

Contoh

YAML format

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 format

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