Tous les produits
Search
Centre de documentation

Edge Security Acceleration:Fonctions de dictionnaire

Dernière mise à jour :Aug 12, 2026

Cette rubrique décrit la syntaxe, les paramètres et les valeurs de retour des fonctions de dictionnaire. Elle fournit également des exemples d'utilisation.

set

La fonction

set

ajoute ou met à jour une paire clé-valeur dans un dictionnaire.

ÉlémentDescription
Syntaxeset(d, k, v)
Paramètres
  • d : dictionnaire cible.
  • k : clé à ajouter ou à mettre à jour. Type de données : quelconque.
  • v : valeur à associer à la clé. Type de données : quelconque.
Exemples
  • Exemple 1
    outer_keys=['e66fd4aa-f281-472f-b919-fc7e7474****', '66fee78d-1887-42ec-9119-a9b50b7f****']
    say(concat('keys[1]=', get(outer_keys, 1)))
    say(concat('keys[2]=', get(outer_keys, 2)))
    
    inner_keys=[]
    set(inner_keys, 'dev', '243390eb-00b7-4551-a6b8-021bb34d****')
    set(inner_keys, 'zeus', '4747d33b-12b0-45e6-ac10-a8e191d6****')
    
    def echo_each(k, v, u) {
        s = concat('keys[', k, ']=', v)
        say(s)
    }
    foreach(inner_keys, echo_each, [])                                                                                                                                             
  • Exemple 2
    d_inner = []
        set(d_inner, 'name', 'inner dsl')
    
        d_outer = []
        set(d_outer, 'dictA', d_inner)
    
        v = get(d_outer, 'dictA')
        if v {
            v = get(v, 'name')
            if v {
                add_rsp_header('X-DSL-NESTED-DICT', v)
            }
        }
Valeur de retourCette fonction retourne toujours true. Les exemples produisent le résultat suivant :
  • Résultat de l'exemple 1 :
    keys[1]=e66fd4aa-f281-472f-b919-fc7e7474****
        keys[2]=66fee78d-1887-42ec-9119-a9b50b7f****
        keys[dev]=243390eb-00b7-4551-a6b8-021bb34d****
        keys[zeus]=4747d33b-12b0-45e6-ac10-a8e191d6****
  • L'exemple 2 ajoute l'en-tête de réponse suivant :
    X-DSL-NESTED-DICT: inner dsl

get

La fonction

get

récupère la valeur associée à une clé spécifique dans un dictionnaire.

ÉlémentDescription
Syntaxeget(d, k)
Paramètres
  • d : dictionnaire cible.
  • k : clé dont la valeur doit être récupérée. Type de données : quelconque.
Exemple
outer_keys=['e66fd4aa-f281-472f-b919-fc7e7474****', '66fee78d-1887-42ec-9119-a9b50b7f****']
say(concat('keys[1]=', get(outer_keys, 1)))
say(concat('keys[2]=', get(outer_keys, 2)))

inner_keys=[]
set(inner_keys, 'dev', '243390eb-00b7-4551-a6b8-021bb34d****')
set(inner_keys, 'zeus', '4747d33b-12b0-45e6-ac10-a8e191d6****')

def echo_each(k, v, u) {
    s = concat('keys[', k, ']=', v)
    say(s)
}
foreach(inner_keys, echo_each, [])                                                                                                                                             
Valeur de retourSi la clé existe, la fonction retourne la valeur correspondante. Sinon, elle retourne false. L'exemple produit le résultat suivant :
keys[1]=e66fd4aa-f281-472f-b919-fc7e7474****
    keys[2]=66fee78d-1887-42ec-9119-a9b50b7f****
    keys[dev]=243390eb-00b7-4551-a6b8-021bb34d****
    keys[zeus]=4747d33b-12b0-45e6-ac10-a8e191d6****

foreach

La fonction

foreach

présente les comportements suivants :

  • Elle itère sur chaque paire clé-valeur du dictionnaire d et exécute la fonction de rappel f.

  • La fonction de rappel f doit respecter la signature f(key, value, user_data).

  • La boucle foreach() s'interrompt si la fonction de rappel f() retourne false.

ÉlémentDescription
Syntaxeforeach(d, f, user_data)
Paramètres
  • d : dictionnaire cible.
  • f : fonction de rappel à exécuter pour chaque paire clé-valeur.
  • user_data : données utilisateur personnalisées à transmettre à la fonction de rappel. Ce paramètre doit être un dictionnaire.
Exemples
  • Exemple 1
    outer_keys=['e66fd4aa-f281-472f-b919-fc7e7474****', '66fee78d-1887-42ec-9119-a9b50b7f****']
    say(concat('keys[1]=', get(outer_keys, 1)))
    say(concat('keys[2]=', get(outer_keys, 2)))
    
    inner_keys=[]
    set(inner_keys, 'dev', '243390eb-00b7-4551-a6b8-021bb34d****')
    set(inner_keys, 'zeus', '4747d33b-12b0-45e6-ac10-a8e191d6****')
    
    def echo_each(k, v, u) {
        s = concat('keys[', k, ']=', v)
        say(s)
    }
    foreach(inner_keys, echo_each, [])                                                                                                                                             
  • Exemple 2
    Cet exemple affiche les deux premiers segments M3U8 et illustre l'interruption de la boucle foreach.
    def echo_each(k, v, u) {
            say(v)
    
            if match_re(v, '.*ts') {
                ts_cnt = get(u, 'ts_cnt')
                ts_cnt = add(ts_cnt, 1)
                set(u, 'ts_cnt', ts_cnt)
    
                if ge(ts_cnt, 2) {
                    return false
                }
            }
        }
    
        m3u8 = ''
        m3u8 = concat(m3u8, '#EXTM3U8', '\n')
        m3u8 = concat(m3u8, '#EXT-X-MEDIA-SEQUENCE:14065****\n')
        m3u8 = concat(m3u8, '#EXT-X-TARGETDURATION:10\n')
        m3u8 = concat(m3u8, '#EXTINF:8,\n')
        m3u8 = concat(m3u8, 'http://***.cn/cache/289_/seg0/index140651514_1406****.ts\n')
        m3u8 = concat(m3u8, '#EXTINF:9,\n')
        m3u8 = concat(m3u8, 'http://***.cn/cache/289_/seg0/index140651514_1406****.ts\n')
        m3u8 = concat(m3u8, '#EXTINF:10,\n')
        m3u8 = concat(m3u8, 'http://***.cn/cache/289_/seg0/index140651514_1406****.ts\n')
    
        lines = split(m3u8, '\n')
        u = []
        set(u, 'ts_cnt', 0)
        foreach(lines, echo_each, u)
Valeur de retourCette fonction retourne toujours true. Les exemples produisent le résultat suivant :
  • Résultat de l'exemple 1 :
    keys[1]=e66fd4aa-f281-472f-b919-fc7e7474****
        keys[2]=66fee78d-1887-42ec-9119-a9b50b7f****
        keys[dev]=243390eb-00b7-4551-a6b8-021bb34d****
        keys[zeus]=4747d33b-12b0-45e6-ac10-a8e191d6****
  • Résultat de l'exemple 2 :
    #EXTM3U8
        #EXT-X-MEDIA-SEQUENCE:140651513
        #EXT-X-TARGETDURATION:10
        #EXTINF:8,
        http://***.cn/cache/289_/seg0/index140651514_1406****.ts
        #EXTINF:9,
        http://***.cn/cache/289_/seg0/index140651514_1406****.ts

del

Supprime des paires clé-valeur d'un dictionnaire (d). Le tableau suivant détaille cette fonction.

ÉlémentDescription
Syntaxedel(d, k)
Paramètres
  • d : nom du dictionnaire.
  • k : clé. Type de données : quelconque.
Exemples
var_a = []
set(var_a, 'note_a', 'note a info')
if get(var_a, 'note_a') {
    add_rsp_header('X-RESPOND-OUTPUT', 'found var_a key', true)
} else {
    add_rsp_header('X-RESPOND-OUTPUT', 'del var_a key', true)
}
del(var_a, 'note_a')
if get(var_a, 'note_a') {
    add_rsp_header('X-RESPOND-OUTPUT', 'found var_a key', true)
} else {
    add_rsp_header('X-RESPOND-OUTPUT', 'del var_a key', true)
}
Paramètres de réponseRetourne la valeur true. Paramètre de réponse pour cet exemple :
X-RESPOND-OUTPUT: found var_a key
X-RESPOND-OUTPUT: del var_a key