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:
|
EnableHttp2 | String | Tidak | Ya | Menentukan apakah akan mengaktifkan HTTP/2. | Nilai yang valid:
|
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:
|
Protokol | String | Ya | Tidak | Protokol jaringan. | Nilai yang valid:
|
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:
|
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:
|
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:
|
Gzip | String | Tidak | Ya | Menentukan apakah akan mengaktifkan kompresi Gzip untuk menekan jenis file tertentu. | Nilai yang valid:
|
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 |
AclIds | List | Tidak | Ya | ID ACL yang ingin Anda asosiasikan dengan pendengar. | Anda harus menentukan properti ini ketika |
ProxyProtocolV2Enabled | Boolean | Tidak | Ya | Menentukan apakah akan menggunakan protokol Proxy untuk meneruskan alamat IP klien sumber ke server backend. | Nilai yang valid:
|
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:
|
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:
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:
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:
|
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:
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:
Catatan Properti ini berlaku ketika Protokol diatur ke |
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:
|
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:
|
XForwardedFor_proto | String | Tidak | Ya | Menentukan apakah akan menggunakan header X-Forwarded-Proto untuk menanyakan protokol pendengar instance SLB. | Nilai yang valid:
|
XForwardedFor_SLBID | String | Tidak | Ya | Menentukan apakah akan menggunakan header SLB-ID untuk menanyakan ID instance SLB. | Nilai yang valid:
|
XForwardedFor_SLBIP | String | Tidak | Ya | Menentukan apakah akan menggunakan header SLB-IP untuk menanyakan alamat IP asli yang diminta oleh klien. | Nilai yang valid:
|
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:
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:
|
XForwardedFor_SLBPORT | String | Tidak | Ya | Menentukan apakah akan menggunakan header X-Forwarded-Port untuk menanyakan port pendengar instance SLB. | Nilai yang valid:
|
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:
|
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": {
}
}