Variabel bawaan EdgeScript dipetakan langsung ke variabel NGINX dan memberikan skrip Anda akses read-only ke properti permintaan, seperti URI, parameter kueri, header, cookie, alamat IP klien, serta detail protokol.
Variabel bawaan bersifat read-only. Jangan memberikan nilai ke variabel tersebut.
Awalan tanda dolar ($) mengidentifikasi suatu variabel sebagai variabel bawaan. Anda dapat menghilangkan awalan $ jika logika bisnis Anda mengharuskannya.
Batas variabel
Satu skrip mendukung paling banyak 200 variabel. Jika aturan Anda memerlukan lebih dari itu, pisahkan logika menjadi beberapa user-defined function, masing-masing berisi tidak lebih dari 200 variabel. Lihat Splitting function untuk contohnya.
Penanganan tanda hubung dalam nama variabel
Tiga variabel bawaan — $arg_{name}, $http_{name}, dan $cookie_{name} — menggunakan placeholder {name} untuk kunci string kueri, bidang header permintaan, atau bidang cookie. Masing-masing menangani tanda hubung secara berbeda:
Variabel | Penanganan tanda hubung |
| Jika |
| Ganti tanda hubung dengan garis bawah. Contoh: |
| Jika |
Variabel bawaan
Variabel | Pengembalian | Variabel NGINX |
| Nilai kunci |
|
| Nilai bidang |
|
| Nilai bidang |
|
| Jenis protokol |
|
| Versi protokol |
|
| Host asli |
|
| URI asli | None |
| Semua parameter string kueri, tidak termasuk |
|
| Metode permintaan |
|
| URI permintaan lengkap, setara dengan |
|
| Alamat IP client yang digunakan untuk terhubung ke points of presence (POPs) |
|
Contoh: $arg_{name} dan $args
Untuk permintaan http://example.aliyundoc.com/1k.file?k1=v1&k2=v2:
$arg_k1mengembalikanv1$argsmengembalikank1=v1&k2=v2(string kueri lengkap, tanpa?)
Splitting function
Ketika suatu aturan berisi lebih dari 200 variabel, pisahkan fungsi asli menjadi beberapa user-defined function. Setiap user-defined function harus berisi tidak lebih dari 200 variabel.
#Jika jumlah variabel melebihi batas, pisahkan seperti ini:
def judeg_arg() {
#Logika terkait penilaian parameter
x
x
}
def judeg_time() {
#Logika terkait penilaian waktu
x
x
}
def judeg_token() {
#Logika terkait penilaian enkripsi
x
x
}
judeg_arg()
judeg_time()
judeg_token()