Tipe ALIYUN::ALB::Rule digunakan untuk membuat aturan pengalihan.
Sintaksis
{
"Type": "ALIYUN::ALB::Rule",
"Properties": {
"RuleActions": List,
"Priority": Integer,
"RuleConditions": List,
"Direction": String,
"RuleName": String,
"ListenerId": String
}
}Properti
Properti | Tipe | Diperlukan | Izinkan pembaruan | Deskripsi | Batasan |
ListenerId | String | Ya | Tidak | ID listener untuk instans Application Load Balancer (ALB). | Tidak ada |
Priority | Integer | Ya | Ya | Prioritas aturan pengalihan. | Nilai valid: 1 hingga 10.000. Nilai yang lebih kecil menunjukkan prioritas yang lebih tinggi. Catatan Prioritas setiap aturan pengalihan dalam listener yang sama harus unik. |
RuleActions | List | Ya | Ya | Aksi aturan pengalihan. | Untuk informasi lebih lanjut, lihat Properti RuleActions. |
RuleConditions | List | Ya | Ya | Kondisi aturan pengalihan. | Untuk informasi lebih lanjut, lihat Properti RuleConditions. |
RuleName | String | Ya | Ya | Nama aturan pengalihan. | Nama harus terdiri dari 2 hingga 128 karakter. Nama harus dimulai dengan huruf atau karakter Tionghoa dan dapat berisi huruf, karakter Tionghoa, angka, titik (.), garis bawah (_), dan tanda hubung (-). |
Direction | String | Tidak | Tidak | Arah aturan pengalihan. | Nilai valid:
|
Sintaksis RuleActions
"RuleActions": [
{
"Order": Integer,
"FixedResponseConfig": Map,
"Type": String,
"RedirectConfig": Map,
"ForwardGroupConfig": Map,
"InsertHeaderConfig": Map,
"RewriteConfig": Map,
"TrafficMirrorConfig": Map,
"TrafficLimitConfig": Map,
"RemoveHeaderConfig": Map,
"CorsConfig": Map
}
]Properti RuleActions
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Order | Integer | Ya | Ya | Urutan eksekusi aksi aturan pengalihan. | Nilai valid: 1 hingga 50.000. Aksi dieksekusi dalam urutan nilai yang menaik. Catatan Nilainya harus unik. |
Type | String | Ya | Ya | Jenis aksi. | Nilai valid:
|
CorsConfig | Map | Tidak | Ya | Konfigurasi lintas domain. | Untuk informasi selengkapnya, lihat properti CorsConfig. |
FixedResponseConfig | Map | Tidak | Ya | Konfigurasi respons tetap. | Untuk informasi lebih lanjut, lihat Properti FixedResponseConfig. |
ForwardGroupConfig | Map | Tidak | Ya | Konfigurasi kelompok penerusan. | Untuk informasi lebih lanjut, lihat Properti ForwardGroupConfig. |
InsertHeaderConfig | Map | Tidak | Ya | Konfigurasi untuk menyisipkan bidang header. | Untuk informasi lebih lanjut, lihat Properti InsertHeaderConfig. |
RedirectConfig | Map | Tidak | Ya | Konfigurasi pengalihan. | Untuk informasi lebih lanjut, lihat Properti RedirectConfig. |
RemoveHeaderConfig | Map | Tidak | Ya | Konfigurasi untuk menghapus bidang header. | Untuk informasi selengkapnya, lihat properti RemoveHeaderConfig. |
RewriteConfig | Map | Tidak | Ya | Konfigurasi penulisan ulang. | Untuk informasi lebih lanjut, lihat Properti RewriteConfig. |
TrafficLimitConfig | Map | Tidak | Ya | Konfigurasi pembatasan kecepatan trafik. | Untuk informasi lebih lanjut, lihat Properti TrafficLimitConfig. |
TrafficMirrorConfig | Map | Tidak | Ya | Konfigurasi pencerminan trafik. | Untuk informasi lebih lanjut, lihat Properti TrafficMirrorConfig. |
Sintaksis FixedResponseConfig
"FixedResponseConfig": {
"HttpCode": String,
"ContentType": String,
"Content": String
}Properti FixedResponseConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Content | String | Tidak | Ya | Konten respons tetap. | Konten dapat berukuran maksimal 1 KB dan harus terdiri dari karakter ASCII. |
ContentType | String | Tidak | Ya | Format respons tetap. | Nilai valid:
|
HttpCode | String | Tidak | Ya | Kode respons HTTP. | Nilai valid adalah string dalam format HTTP_2xx, HTTP_4xx, dan HTTP_5xx, di mana x adalah digit apa pun. |
Sintaksis RedirectConfig
"RedirectConfig": {
"Path": String,
"HttpCode": Integer,
"Query": String,
"Port": String,
"Host": String,
"Protocol": String
}Properti RedirectConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Host | String | Tidak | Ya | Host tujuan pengalihan permintaan. | Nilai valid:
|
HttpCode | Integer | Tidak | Ya | Metode pengalihan. | Nilai valid:
|
Path | String | Tidak | Ya | Path tempat permintaan dialihkan. | Nilai valid:
|
Port | String | Tidak | Ya | Port tempat permintaan dialihkan. | Nilai valid:
|
Protocol | String | Tidak | Ya | Protokol tujuan pengalihan permintaan. | Nilai valid:
|
Query | String | Tidak | Ya | String kueri tujuan pengalihan permintaan. | Nilai valid:
|
Sintaksis ForwardGroupConfig
"ForwardGroupConfig": {
"ServerGroupTuples": List,
"ServerGroupStickySession": Map
}Properti ForwardGroupConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
ServerGroupStickySession | Map | Tidak | Ya | Konfigurasi persistensi sesi. | Untuk informasi lebih lanjut, lihat Properti ServerGroupStickySession. |
ServerGroupTuples | List | Tidak | Ya | Daftar kelompok vServer tujuan. | Untuk informasi selengkapnya, lihat properti ServerGroupTuples. |
Sintaksis ServerGroupStickySession
"ServerGroupStickySession": {
"Enabled": Boolean,
"Timeout": Integer
}Properti ServerGroupStickySession
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Enabled | Boolean | Tidak | Ya | Menentukan apakah akan mengaktifkan persistensi sesi. | Nilai valid:
|
Timeout | Integer | Tidak | Ya | Durasi timeout. | Satuan: detik. Nilai valid: 1 hingga 86400. |
Sintaksis ServerGroupTuples
"ServerGroupTuples": [
{
"ServerGroupId": String
}
]Properti ServerGroupTuples
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
ServerGroupId | String | Ya | Ya | ID kelompok vServer tujuan. | Tidak ada |
Sintaksis InsertHeaderConfig
"InsertHeaderConfig": {
"ValueType": String,
"Value": String,
"Key": String
}Properti InsertHeaderConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Key | String | Tidak | Ya | Nama bidang header yang akan disisipkan. | Nama harus terdiri dari 1 hingga 40 karakter dan dapat berisi huruf, angka, garis bawah (_), dan tanda hubung (-). Nama header dalam InsertHeaderConfig harus unik. Catatan Nama header tidak boleh diatur ke nilai-nilai berikut (tidak case-sensitive): slb-id, slb-ip, x-forwarded-for, x-forwarded-proto, x-forwarded-eip, x-forwarded-port, x-forwarded-client-srcport, connection, upgrade, content-length, transfer-encoding, keep-alive, te, host, cookie, remoteip, authority. |
Value | String | Tidak | Ya | Konten bidang header yang akan disisipkan. | Nilai valid:
|
ValueType | String | Tidak | Ya | Jenis konten bidang header. | Nilai valid:
|
Sintaksis RewriteConfig
"RewriteConfig": {
"Path": String,
"Query": String,
"Host": String
}Properti RewriteConfig
Properti | Tipe | Diperlukan | Izinkan Pembaruan | Deskripsi | Batasan |
Host | String | Tidak | Ya | Host tujuan untuk penulisan ulang internal. | Nilai valid:
|
Path | String | Tidak | Ya | Jalur yang akan ditulis ulang. | Nilai valid:
|
Query | String | Tidak | Ya | String kueri untuk penulisan ulang internal. | Nilai valid:
|
Sintaksis RuleConditions
"RuleConditions": [
{
"MethodConfig": Map,
"PathConfig": Map,
"Type": String,
"QueryStringConfig": Map,
"HostConfig": Map,
"CookieConfig": Map,
"HeaderConfig": Map,
"SourceIpConfig": Map,
"ResponseStatusCodeConfig": Map,
"ResponseHeaderConfig": Map
}
]Properti RuleConditions
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Type | String | Ya | Ya | Jenis kondisi aturan pengalihan. | Nilai valid:
|
CookieConfig | Map | Tidak | Ya | Konfigurasi cookie. | Untuk informasi selengkapnya, lihat properti CookieConfig. |
HeaderConfig | Map | Tidak | Ya | Konfigurasi bidang header. | Untuk informasi lebih lanjut, lihat Properti HeaderConfig. |
HostConfig | Map | Tidak | Ya | Konfigurasi host. | Untuk informasi selengkapnya, lihat properti HostConfig. |
MethodConfig | Map | Tidak | Ya | Konfigurasi metode permintaan. | Untuk informasi selengkapnya, lihat properti MethodConfig. |
PathConfig | Map | Tidak | Ya | Konfigurasi jalur penerusan. | Untuk informasi selengkapnya, lihat properti PathConfig. |
QueryStringConfig | Map | Tidak | Ya | Konfigurasi string kueri. | Untuk informasi selengkapnya, lihat properti QueryStringConfig. |
SourceIpConfig | Map | Tidak | Ya | Mengonfigurasi aturan penerusan. | Untuk informasi selengkapnya, lihat properti SourceIpConfig. |
ResponseStatusCodeConfig | Map | Tidak | Ya | Konfigurasi kode status respons. | Untuk informasi selengkapnya, lihat properti ResponseStatusCodeConfig. |
ResponseHeaderConfig | Map | Tidak | Ya | Konfigurasi kondisi header respons. | Untuk informasi lebih lanjut, lihat Properti ResponseHeaderConfig. |
Sintaks ResponseStatusCodeConfig
"ResponseStatusCodeConfig": {
"Values": List
}Properti ResponseStatusCodeConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Nilai | Daftar | Tidak | Ya | Daftar kode status respons. | Tidak ada. |
Sintaks ResponseHeaderConfig
"ResponseHeaderConfig": {
"Key": String,
"Values": List
}Properti ResponseHeaderConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Kunci | String | Tidak | Ya | Kunci bidang header. |
|
Nilai | Daftar | Tidak | Ya | Nilai bidang header. |
|
Sintaksis SourceIpConfig
"SourceIpConfig": {
"Values": List
}Properti SourceIpConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Values | List | Tidak | Ya | Satu atau beberapa alamat IP atau Blok CIDR. | Aturan pengalihan dapat berisi hingga lima alamat IP. |
Sintaksis MethodConfig
"MethodConfig": {
"Values": List
}Properti MethodConfig
Properti | Type | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Values | List | Tidak | Ya | Metode permintaan. | Nilai valid:
|
Sintaksis PathConfig
"PathConfig": {
"Values": List
}Properti PathConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Values | List | Tidak | Ya | Jalur penerusan. | Jalur harus terdiri dari 1 hingga 128 karakter. Jalur harus dimulai dengan garis miring (/) dan dapat berisi huruf, angka, tanda bintang (*), tanda tanya (?), serta karakter khusus berikut: |
Sintaksis QueryStringConfig
"QueryStringConfig": {
"Values": List
}Properti QueryStringConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Values | List | Tidak | Ya | String kueri. | Tidak ada |
Sintaksis HostConfig
"HostConfig": {
"Values": List
}Properti HostConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Values | List | Tidak | Ya | Nama host. | Nilai harus memenuhi persyaratan berikut:
|
Sintaksis CookieConfig
"CookieConfig": {
"Values": List
}Properti CookieConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Values | List | Tidak | Ya | Daftar nilai cookie. | Tidak ada |
Sintaksis HeaderConfig
"HeaderConfig": {
"Values": List,
"Key": String
}Properti HeaderConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Key | String | Tidak | Ya | Kunci bidang header. | Kunci harus terdiri dari 1 hingga 40 karakter. Kunci dapat berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_). Cookie dan Host tidak didukung. |
Values | List | Tidak | Ya | Nilai bidang header. | Nilai bidang header harus unik dalam kondisi aturan pengalihan yang sama. Nilai harus terdiri dari 1 hingga 128 karakter dan dapat berisi karakter yang dapat dicetak dengan nilai ASCII dari |
Sintaksis TrafficMirrorConfig
"TrafficMirrorConfig": {
"MirrorGroupConfig": Map,
"TargetType": String
}Properti TrafficMirrorConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
MirrorGroupConfig | Map | Tidak | Ya | Konfigurasi kelompok vServer. | Untuk informasi selengkapnya, lihat properti MirrorGroupConfig. |
TargetType | String | Tidak | Ya | Jenis tujuan pencerminan. | Nilai valid:
|
Sintaksis MirrorGroupConfig
"MirrorGroupConfig": {
"ServerGroupTuples": List
}Properti MirrorGroupConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
ServerGroupTuples | List | Ya | Ya | Daftar kelompok vServer. | Tidak ada |
Sintaksis TrafficLimitConfig
"TrafficLimitConfig": {
"PerIpQps": Integer,
"QPS": Integer
}Properti TrafficLimitConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
PerIpQps | Integer | Tidak | Ya | Jumlah permintaan per detik (QPS) untuk satu alamat IP. | Nilai valid: 1 hingga 100000. |
QPS | Integer | Tidak | Ya | Jumlah total permintaan per detik (QPS). | Nilai valid: 1 hingga 100000. Catatan Jika Anda mengonfigurasi QPS dan PerIpQps, nilai PerIpQps harus lebih kecil dari nilai QPS. |
Sintaksis RemoveHeaderConfig
"RemoveHeaderConfig": {
"Key": String
}Properti RemoveHeaderConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
Key | String | Tidak | Ya | Kunci bidang header. | Tidak ada |
Sintaksis CorsConfig
"CorsConfig": {
"AllowMethods": List,
"AllowHeaders": List,
"AllowOrigin": List,
"MaxAge": Integer,
"AllowCredentials": String,
"ExposeHeaders": List
}Properti CorsConfig
Properti | Tipe | Diperlukan | Dapat Diperbarui | Deskripsi | Batasan |
AllowMethods | List | Tidak | Ya | Metode HTTP yang diizinkan untuk permintaan lintas domain. | Metode HTTP yang diizinkan untuk akses lintas domain. Nilai valid:
|
AllowHeaders | List | Tidak | Ya | Daftar header yang diizinkan untuk permintaan lintas domain. | Tentukan karakter wildcard |
AllowOrigin | List | Tidak | Ya | Daftar asal yang diizinkan. | Tentukan satu atau beberapa nilai, atau hanya karakter wildcard
|
AllowCredentials | String | Tidak | Ya | Menentukan apakah kredensial ikut dikirim. | Nilai valid:
|
ExposeHeaders | List | Tidak | Ya | Daftar header yang dapat diekspos. | Tentukan karakter wildcard |
MaxAge | Integer | Tidak | Ya | Durasi cache maksimum permintaan preflight di browser. | Unit: detik. Nilai valid: -1 hingga 172800. |
Nilai Pengembalian
Fn::GetAtt
RuleId: ID aturan pengalihan.
ListenerId: ID listener.
Contoh
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
ListenerId:
Type: String
Description: |-
ID listener yang dikonfigurasi untuk instans Application Load Balancer (ALB).
Default: lsn-5tl4x9oav95yeb****
Resources:
Rule:
Type: ALIYUN::ALB::Rule
Properties:
RuleActions:
- FixedResponseConfig:
Content: dssacav
ContentType: text/plain
HttpCode: '200'
ForwardGroupConfig:
ServerGroupTuples:
- ServerGroupId: sgp-46ndzg2wz4v5mp****
InsertHeaderConfig:
Key: key
Value: ClientSrcPort
ValueType: SystemDefined
Order: 1
RedirectConfig:
Host: ${host}
HttpCode: '301'
Path: /test
Port: '10'
Protocol: HTTP
Query: quert
RewriteConfig:
Host: example.com
Path: /tsdf
Query: quedsa
Type: ForwardGroup
Priority: 10
RuleConditions:
- CookieConfig:
Values:
- Key: test
Value: test
HeaderConfig:
Key: port
Values:
- '5006'
HostConfig:
Values:
- www.example.com
MethodConfig:
Values:
- PUT
PathConfig:
Values:
- /test
QueryStringConfig:
Values:
- Key: test
Value: test
Type: Host
RuleName: MyTestRule
ListenerId:
Ref: ListenerId
Outputs:
RuleId:
Description: ID aturan pengalihan.
Value:
Fn::GetAtt:
- Rule
- RuleId {
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"ListenerId": {
"Type": "String",
"Description": "ID listener yang dikonfigurasi untuk instans Application Load Balancer (ALB)\n.",
"Default": "lsn-5tl4x9oav95yeb****"
}
},
"Resources": {
"Rule": {
"Type": "ALIYUN::ALB::Rule",
"Properties": {
"RuleActions": [
{
"FixedResponseConfig": {
"Content": "dssacav",
"ContentType": "text/plain",
"HttpCode": "200"
},
"ForwardGroupConfig": {
"ServerGroupTuples": [
{
"ServerGroupId": "sgp-46ndzg2wz4v5mp****"
}
]
},
"InsertHeaderConfig": {
"Key": "key",
"Value": "ClientSrcPort",
"ValueType": "SystemDefined"
},
"Order": 1,
"RedirectConfig": {
"Host": "${host}",
"HttpCode": "301",
"Path": "/test",
"Port": "10",
"Protocol": "HTTP",
"Query": "quert"
},
"RewriteConfig": {
"Host": "example.com",
"Path": "/tsdf",
"Query": "quedsa"
},
"Type": "ForwardGroup"
}
],
"Priority": 10,
"RuleConditions": [
{
"CookieConfig": {
"Values": [
{
"Key": "test",
"Value": "test"
}
]
},
"HeaderConfig": {
"Key": "port",
"Values": [
"5006"
]
},
"HostConfig": {
"Values": [
"www.example.com"
]
},
"MethodConfig": {
"Values": [
"PUT"
]
},
"PathConfig": {
"Values": [
"/test"
]
},
"QueryStringConfig": {
"Values": [
{
"Key": "test",
"Value": "test"
}
]
},
"Type": "Host"
}
],
"RuleName": "MyTestRule",
"ListenerId": {
"Ref": "ListenerId"
}
}
}
},
"Outputs": {
"RuleId": {
"Description": "ID aturan pengalihan.",
"Value": {
"Fn::GetAtt": [
"Rule",
"RuleId"
]
}
}
}
}