All Products
Search
Document Center

ApsaraVideo VOD:Variabel bawaan EdgeScript

Last Updated:Aug 28, 2026

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

$arg_{name}

Jika {name} mengandung tanda hubung, gunakan req_uri_arg('{name}') sebagai gantinya. Contoh: req_uri_arg('example-demo') untuk ?example-demo=123

$http_{name}

Ganti tanda hubung dengan garis bawah. Contoh: $http_x_user_id untuk header X-USER-ID

$cookie_{name}

Jika {name} mengandung tanda hubung, gunakan req_cookie('{name}') sebagai gantinya. Contoh: req_cookie('example-demo') untuk cookie: example-demo=123

Variabel bawaan

Variabel

Pengembalian

Variabel NGINX

$arg_{name}

Nilai kunci {name} dalam string kueri

$arg_

$http_{name}

Nilai bidang {name} dalam header permintaan

$http_

$cookie_{name}

Nilai bidang {name} dalam header cookie permintaan

$cookie_

$scheme

Jenis protokol

$scheme

$server_protocol

Versi protokol

$server_protocol

$host

Host asli

$host

$uri

URI asli

None

$args

Semua parameter string kueri, tidak termasuk ? di awal

$args

$request_method

Metode permintaan

$request_method

$request_uri

URI permintaan lengkap, setara dengan uri + '?' + args

$request_uri

$remote_addr

Alamat IP client yang digunakan untuk terhubung ke points of presence (POPs)

$remote_addr

Contoh: $arg_{name} dan $args

Untuk permintaan http://example.aliyundoc.com/1k.file?k1=v1&k2=v2:

  • $arg_k1 mengembalikan v1

  • $args mengembalikan k1=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()