All Products
Search
Document Center

Server Load Balancer:Referensi sintaks dan variabel AScript

Last Updated:Jun 30, 2026

AScript adalah skrip programmable untuk Application Load Balancer (ALB) yang memungkinkan Anda membuat aturan pengalihan kustom.

Aturan sintaks

Penting

Tanda kutip ganda (") tidak diizinkan dalam AScript. Gunakan tanda kutip tunggal (') untuk semua nilai string.

Sintaks

Aturan

Komentar

Teks apa pun pada suatu baris yang mengikuti tanda pagar (#) dianggap sebagai komentar. Contohnya: # ini adalah anotasi.

Identifier

  • Identifier dapat berisi huruf, angka, dan garis bawah (_), tetapi tidak boleh dimulai dengan angka. Identifier bersifat case-sensitive.

  • Aturan ini berlaku untuk nama variabel dan fungsi, baik yang bawaan maupun kustom.

Tipe data

  • String

    Konstanta literal: Nilai yang diapit tanda kutip tunggal, contohnya: 'hello, AScript'.

  • Number

    Konstanta literal: Angka desimal. Contohnya: 10, -99, atau 1.1.

  • Boolean

    Konstanta literal: true atau false.

  • Dictionary

    Berikut adalah contoh konstanta literal:

    • []: Dictionary kosong.

    • ['key1', 'key2', 100]:

      • 1 -> 'key1'

      • 2 -> 'key2'

      • 3 -> 100

    • ['key1' = 'value1', 'key2' = 1000]

      • 'key1' -> 'value1'

      • 'key2' -> 1000

Variabel

  • Definisi

    Variabel didefinisikan ketika suatu nilai diberikan kepadanya.

  • Penggunaan

    • Referensikan variabel bawaan dan kustom berdasarkan namanya.

      • Merujuk variabel bawaan: host.

      • Merujuk variabel kustom: seckey.

    • Anda dapat menggunakan simbol $ untuk merujuk properti bawaan suatu variabel.

      Merujuk variabel bawaan: $host.

    • Variabel kustom tidak boleh memiliki nama yang sama dengan variabel bawaan.

      Untuk daftar variabel bawaan, lihat tabel Variabel bawaan di bawah.

Operator

  • = : operator penugasan.

    • Contohnya: seckey = 'ASDLFJ234dxvf34sDF'

    • Contohnya: seckeys = ['key1', 'key2']

  • - : operator minus unary.

    Contohnya: inum = -10

  • AScript tidak mendukung operator lainnya. Sebagai gantinya, operasi pada tipe data ditangani oleh fungsi bawaan. Untuk informasi lebih lanjut, lihat Ikhtisar fungsi bawaan AScript.

Pernyataan

  • Pernyataan kondisional

    if condition {   
       ...
    }
    
    if condition1 {   
       if condition2 {
            ...
       }
    }
    
    if condition {
       ...
    } else {
       ...
    }
  • Penjelasan

    • condition dapat terdiri dari elemen sintaks berikut:

      • Nilai literal

      • Variabel

      • Pemanggilan fungsi

    • Body

      • Body dapat kosong.

      • Beberapa pernyataan diperbolehkan. Tulis satu pernyataan per baris.

    • Mendukung nesting multi-level.

    • Gaya Penulisan

      Sintaks mewajibkan kurung kurawal buka mengikuti if condition pada baris yang sama.

Fungsi

  • Sintaks definisi

    def function_name(parameter_list) {
        ...
    }
  • Rincian definisi

    • Daftar parameter

      • Fungsi dapat didefinisikan tanpa parameter.

      • Pisahkan beberapa parameter dengan koma.

    • Body fungsi

      • Body dapat kosong.

      • Beberapa pernyataan diperbolehkan. Tulis satu pernyataan per baris.

      • Nilai kembalian: Pernyataan return didukung.

    • Gaya Penulisan

      Sintaks mewajibkan kurung kurawal buka mengikuti nama fungsi def (daftar parameter) dan berada pada baris yang sama.

  • Pemanggilan fungsi

    Fungsi bawaan maupun kustom dipanggil dengan menggunakan function_name(parameter_list).

Variabel bawaan

  • Tanda dolar ($) sebelum nama variabel bawaan hanya berfungsi untuk mengidentifikasinya sebagai variabel bawaan dan dapat dihilangkan tanpa memengaruhi penggunaannya.

  • Variabel bawaan bersifat read-only dan tidak dapat digunakan sebagai l-value, artinya Anda tidak dapat memberikan nilai ke variabel tersebut.

  • Setiap aturan AScript mendukung maksimal 200 variabel global. Tidak ada batasan jumlah variabel lokal. Untuk menggunakan lebih dari 200 variabel, definisikan fungsi kustom dan gunakan variabel lokal di dalam fungsi tersebut.

Nama variabel

Deskripsi

Variabel Nginx ekuivalen

$arg_{name}

Nilai parameter name dalam Query String. Query String berisi parameter permintaan dari permintaan HTTP.

ngx.var.arg_{name}

Tanda hubung (-) dalam {name} harus diganti dengan garis bawah (_). Misalnya, X-USER-ID berkorespondensi dengan $arg_x_user_id.

$http_{name}

Nilai name dalam header permintaan.

ngx.var.http_{name}

Tanda hubung (-) dalam {name} harus diganti dengan garis bawah (_). Misalnya, X-USER-ID menjadi $http_x_user_id.

$cookie_{name}

Nilai name dalam header cookie permintaan.

ngx.var.cookie_{name}

Tanda hubung (-) dalam {name} harus diganti dengan garis bawah (_). Misalnya, X-USER-ID menjadi $cookie_x_user_id.

$scheme

Protokol.

ngx.var.scheme

$server_protocol

Versi protokol.

ngx.var.server_protocol

$host

Nama host dari permintaan.

ngx.var.host

$uri

URI permintaan mentah.

ngx.var.raw_uri

$args

$args merepresentasikan query string dari permintaan HTTP saat ini, tetapi tidak mencakup tanda tanya (?). Contohnya: http://www.a.com/1k.file?k1=v1&k2=v2.

  • Anda dapat menggunakan $arg_k1 untuk mendapatkan nilai v1 yang sesuai.

  • Variabel $args berisi seluruh query string, seperti k1=v1&k2=v2, dan tidak mencakup tanda tanya (?).

ngx.var.args

$request_method

Metode permintaan.

ngx.var.request_method

$request_uri

Isi dari uri+'?'+args.

ngx.var.request_uri

$remote_addr

Alamat IP client.

ngx.var.remote_addr