Tous les produits
Search
Centre de documentation

CDN:Variables intégrées EdgeScript

Dernière mise à jour :Aug 27, 2026

Les variables intégrées d'EdgeScript correspondent directement aux variables NGINX et offrent à vos scripts un accès en lecture seule aux propriétés de la requête : l'URI, les paramètres de requête, les en-têtes, les cookies, l'adresse IP du client et les 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 Fractionnement 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, à l'exclusion du ? 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 utilisée pour se connecter aux points de présence (POP)

$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 le ?)

Fractionnement 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()