O que faz
Descreva uma decisão como regras em ordem ("caminhos que começam com /api vão para api_pool, /login vai para login_pool, o resto para web_pool") e a ferramenta a escreve de três jeitos:
- uma cadeia
if/elseif, - um
switch(com-globquando alguma regra precisa e--antes do valor), - uma consulta
class matcha data groups, com as definições dos data groups emtmsh.
Em seguida, um valor de teste passa por cada regra gerada no interpretador didático, e a página mostra qual pool cada forma escolheu.
Por que as formas podem discordar
if e switch pegam a primeira regra que casa, na ordem escrita. class match com starts_with ou ends_with devolve a entrada mais longa que casar, seja qual for a ordem (a referência de class da F5 diz isso). Com as regras /api e /api/v2, o valor de teste /api/v2/users vai para api_pool por if e switch, mas para api_v2_pool por class match. A ferramenta também sinaliza uma regra que nunca pode disparar porque uma regra anterior sempre casa antes.
Vale saber
- Passar o valor para minúsculas (
string tolower) torna a comparação indiferente à caixa, mas então um valor de regra com maiúsculas nunca casa; a ferramenta avisa sobre isso. class matchnão tem comparação glob, então uma regra glob impede a forma com data group.- Um valor de regra com uma chave sem par é escrito com uma barra invertida na frente (
\{). O Tcl conta as chaves dentro de um corpo entre chaves mesmo entre aspas duplas (regra 5 da página de sintaxe do Tcl 8.4), então uma chave sozinha quebraria a regra; o Tcl 8.4.6 real para commissing close-brace. - Para
HTTP::path, o valor de teste é cortado no primeiro ponto de interrogação:HTTP::pathnão inclui a query string (referência deHTTP::pathda F5), então as regras comparam só a parte anterior a ele. - Nomes de registro com caracteres além de letras, dígitos e
_ . / : -são escritos entre aspas duplas nas definições emtmsh. Essas aspas não foram testadas num BIG-IP: depois de criar o data group, liste-o notmshe confira os registros. - O código gerado segue o iRules Style Guide do DevCentral (indentação de 4 espaços, prioridade no evento, expressões entre chaves, nomes de variáveis entre chaves,
--emswitcheclass) e passa no verificador de estilo deste site sem nenhum apontamento.
Fontes
- Referência de iRules da F5: class (lido em 2026-10-02)
- Referência de iRules da F5: Operators (lido em 2026-10-02)
- Manual do Tcl 8.4: switch (lido em 2026-10-03)
- F5 K15650046: Tcl code injection security exposure (lido em 2026-10-03)
- F5 DevCentral: iRules Style Guide (lido em 2026-10-03)
- Referência de iRules da F5: priority (lido em 2026-10-03)
- Referência de iRules da F5: HTTP::path (lido em 2026-10-03)
- Manual do Tcl 8.4: Tcl (as regras de substituição) (lido em 2026-10-03)