Tous les produits
Search
Centre de documentation

Edge Security Acceleration:Variables intégrées EdgeScript

Dernière mise à jour :Sep 21, 2026

Les variables intégrées EdgeScript correspondent directement aux variables NGINX et offrent à vos scripts un accès en lecture seule aux propriétés de la requête : URI, paramètres de requête, en-têtes, cookies, adresse IP du client et détails du protocole.

Les variables intégrées sont en lecture seule. Ne leur attribuez pas de valeurs.

Le signe dollar ($) en préfixe identifie une variable intégrée. Vous pouvez omettre le préfixe $ si votre logique métier l'exige.

Limite de variables

Un script prend en charge au maximum 200 variables. Si votre règle nécessite davantage de variables, divisez la logique en plusieurs fonctions définies par l'utilisateur, chacune contenant au plus 200 variables. Consultez la section Division de fonction pour un exemple.

Gestion des traits d'union dans les noms de variables

Trois variables intégrées — $arg_{name}, $http_{name} et $cookie_{name} — utilisent un espace réservé {name} pour une clé de chaîne de requête, un champ d'en-tête de requête ou un champ de cookie. Chacune gère les traits d'union différemment :

Variable

Gestion des traits d'union

$arg_{name}

Si {name} contient un trait d'union, utilisez plutôt req_uri_arg('{name}'). Exemple : req_uri_arg('example-demo') pour ?example-demo=123

$http_{name}

Remplacez les traits d'union par des underscores. Exemple : $http_x_user_id pour l'en-tête X-USER-ID

$cookie_{name}

Si {name} contient un trait d'union, utilisez plutôt req_cookie('{name}'). Exemple : req_cookie('example-demo') pour cookie: example-demo=123

Variables intégrées

Variable

Valeur renvoyée

Variable NGINX

$arg_{name}

Valeur de la clé {name} dans la chaîne de requête

$arg_

$http_{name}

Valeur du champ {name} dans l'en-tête de requête

$http_

$cookie_{name}

Valeur du champ {name} dans l'en-tête Cookie de la requête

$cookie_

$scheme

Type de protocole

$scheme

$server_protocol

Version du protocole

$server_protocol

$host

Hôte d'origine

$host

$uri

URI d'origine

Aucune

$args

Tous les paramètres de la chaîne de requête, sans le ? initial

$args

$request_method

Méthode de requête

$request_method

$request_uri

URI de requête complète, équivalente à uri + '?' + args

$request_uri

$remote_addr

Adresse IP du client (c'est-à-dire la première adresse IP contenue dans l'en-tête de requête X-Forwarded-For).

$remote_addr

Exemple : $arg_{name} et $args

Pour la requête http://example.aliyundoc.com/1k.file?k1=v1&k2=v2 :

  • $arg_k1 renvoie v1

  • $args renvoie k1=v1&k2=v2 (la chaîne de requête complète, sans ?)

Division de fonction

Lorsqu'une règle contient plus de 200 variables, divisez la fonction d'origine en plusieurs fonctions définies par l'utilisateur. Chaque fonction définie par l'utilisateur ne doit pas contenir plus de 200 variables.

#If variables exceed the limit, split them like this:
def judeg_arg() {
  #Parameter judgment related logic
  x
  x
}

def judeg_time() {
  #Time judgment related logic
  x
  x
}

def judeg_token() {
  #Encryption judgment related logic
  x
  x
}

judeg_arg()
judeg_time()
judeg_token()