Executor passo a passo de iRules
Rode um trecho curto de iRule um comando por vez e veja o que cada comando recebeu depois da substituição, o que devolveu e quais variáveis mudaram. O caminho mais rápido para entender aspas, chaves, append, concat, incr e o ramo que if ou switch tomou. Local, sem rede.
RedesExperimente
Requisição de exemplo (o que os comandos de iRules devolvem)
Estas são as respostas que os comandos de iRules dão nesta ferramenta. Nada é enviado para lugar nenhum: pool, HTTP::redirect e ações parecidas são anotadas, não executadas.
Terminou. Último resultado: ∅
4 comandos, na ordem em que começaram
Um comando recuado rodou dentro do comando acima dele: no corpo, ou entre colchetes enquanto as palavras dele eram montadas (então terminou antes).
- 1linha 1
set uri [HTTP::uri]recebeuseturi/login.php?user=abcdevolveu/login.php?user=abcuri: indefinida →/login.php?user=abc
- 2linha 1
HTTP::urirecebeuHTTP::uridevolveu/login.php?user=abc - 3linha 2
if { $uri starts_with "/login" } { …recebeuif$uri starts_with "/login"↵ log local0. "login: $uri"↵elseif$uri starts_with "/api"↵ pool api_pool↵else↵ pool web_pool↵devolveu∅- Uma condição foi verdadeira, então o corpo depois dela roda e o resto é pulado.
Expressão avaliada:
$uri starts_with "/login"$uri starts_with "/login"1inteirostarts_withé um dos operadores que a F5 acrescenta aos iRules. Ele compara os valores como texto.
$uri/login.php?user=abc- Lê a variável
uri.
- Lê a variável
"/login"/login- Texto entre aspas duplas, sem nada para substituir.
- 4linha 2
log local0. "login: $uri"recebeuloglocal0.login: /login.php?user=abcdevolveu∅
Variáveis no final
$uri/login.php?user=abc
Registrado no log e anotado
log local0.login: /login.php?user=abc
Referências
- F5 K6091: The version of Tcl used to develop iRules
- Tcl 8.4 manual: Tcl (the substitution rules)
- Tcl 8.4 manual: append
- Tcl 8.4 manual: concat
- Tcl 8.4 manual: lappend
- Tcl 8.4 manual: incr
- Tcl 8.4 manual: switch
- F5 K57410758: warning [use curly braces to avoid double substitution]
- F5 K36322151: List of disabled Tcl commands for iRules (12.x - 17.x)
- F5 iRules reference: log
- F5 iRules reference: HTTP::uri
- F5 iRules reference: HTTP::host
- Tcl 8.4.6 source code, tag core-8-4-6 on GitHub