Fonctions intégrées
Les expressions dans les StyleBooks peuvent utiliser des fonctions intégrées.
Par exemple, vous pouvez utiliser la fonction intégrée str() pour transformer un nombre en chaîne de caractères.
str($parameters.order)
Ou, vous pouvez utiliser la fonction intégrée int() pour transformer une chaîne de caractères en entier.
int($parameters.priority)
Voici la liste des fonctions intégrées prises en charge dans les expressions StyleBook, avec des exemples d’utilisation :
str()
La fonction str() transforme l’argument d’entrée en une valeur de chaîne de caractères.
Types d’arguments autorisés :
stringnumberTCP-portbooleanadresse IP
Exemples :
- La fonction
"set-" + str(10)renvoie"set-10". - La fonction
str(10)renvoie10. - La fonction
str(1.1.1.1)renvoie1.1.1.1. - La fonction
str(T rue)renvoie"T rue". - La fonction
str(ADM)renvoie"mas".
int()
La fonction int() prend une chaîne de caractères, un nombre, une adresse IP ou un tcpport comme argument et renvoie un entier.
Exemples :
- La fonction
int("10")renvoie10. - La fonction
int(10)renvoie10. - La fonction
int(ip('0.0.4.1'))renvoie1025.
bool()
La fonction bool() prend un argument de n’importe quel type. Si la valeur de l’argument est false, vide ou absente, cette fonction renvoie false.
Sinon, elle renvoie true.
Exemples :
- La fonction
bool(true)renvoietrue. - La fonction
bool(false)renvoiefalse. - La fonction
bool($parameters.a)renvoiefalsesi$parameters.aestfalse, vide ou absent.
len()
La fonction len() prend une chaîne de caractères ou une liste comme argument, et renvoie le nombre de caractères dans une chaîne ou le nombre d’éléments dans une liste.
Exemple 1 :
Si vous définissez une substitution comme suit :
items: ["123", "abc", "xyz"]
La fonction len($substitutions.items) renvoie 3
Exemple 2 :
La fonction len("NetScaler ADM") renvoie 10.
Exemple 3 :
Si $parameters.vips a les valeurs ['1.1.1.1', '1.1.1.2', '1.1.1.3'], la fonction len($parameters.vips) renvoie 3.
min()
La fonction min() prend une liste ou une série de nombres ou de tcp-ports comme arguments, et renvoie l’élément le plus petit.
Exemples avec une série de nombres/tcp-ports :
- La fonction
min(80, 100, 1000)renvoie80. - La fonction
min(-20, 100, 400)renvoie-20. - La fonction
min(-80, -20, -10)renvoie-80. - La fonction
min(0, 100, -400)renvoie-400.
Exemples avec une liste de nombres/tcp-ports :
-
Supposons que
$parameters.portssoit une liste detcp-portset ait les valeurs :[80, 81, 8080].La fonction
min($parameters.ports)renvoie80.
max()
La fonction max() prend une liste ou une série de nombres ou de tcp-ports comme arguments, et renvoie l’élément le plus grand.
Exemples avec une série de nombres/tcp-ports :
- La fonction
max(80, 100, 1000)renvoie1000. - La fonction
max(-20, 100, 400)renvoie400. - La fonction
max(-80, -20, -10)renvoie-10. - La fonction
max(0, 100, -400)renvoie100.
Exemples avec une liste de nombres/tcp-ports :
-
Supposons que
$parameters.portssoit une liste detcp-portset ait les valeurs :[80, 81, 8080].La fonction
max($parameters.ports)renvoie8080.
bin()
La fonction bin() prend un nombre comme argument et renvoie une chaîne de caractères représentant le nombre au format binaire.
Exemples d’expressions :
La fonction bin(100) renvoie 0b1100100.
oct()
La fonction oct() prend un nombre comme argument et renvoie une chaîne de caractères représentant le nombre au format octal.
Exemples d’expressions :
La fonction oct(100) renvoie 0144.
hex()
La fonction hex() prend un nombre comme argument et renvoie une chaîne de caractères en minuscules représentant le nombre au format hexadécimal.
Exemples d’expressions :
La fonction hex(100) renvoie 0x64.
lower()
La fonction lower() prend une chaîne de caractères comme argument et renvoie la même chaîne en minuscules.
Exemple :
La fonction lower("ADM") renvoie adm.
upper()
La fonction upper() prend une chaîne de caractères comme argument et renvoie la même chaîne en majuscules.
Exemple :
La fonction upper("NetScaler ADM") renvoie NetScaler ADM.
sum()
La fonction sum() prend une liste de nombres ou de tcpports comme arguments et renvoie la somme des nombres de la liste.
Exemple 1 :
Si vous définissez une substitution comme suit : substitutions:
list-of-numbers = [11, 22, 55]
La fonction sum($substitutions.list-of-numbers) renvoie 88.
Exemple 2 :
Si $parameters.ports est [80, 81, 82], la fonction sum($parameters.ports) renvoie 243.
pow()
La fonction pow() prend deux nombres comme arguments et renvoie un nombre qui représente le premier argument élevé à la puissance du second.
Exemple :
La fonction pow(3,2) renvoie 9.
ip()
La fonction ip() prend un entier, une chaîne de caractères ou une adresse IP comme argument et renvoie l’adresse IP basée sur la valeur d’entrée.
Exemples :
-
Spécifiez une adresse IP dans la fonction
ip:La fonction
ip(3.1.1.1)renvoie3.1.1.1. -
Spécifiez une chaîne de caractères dans la fonction
ip:La fonction
ip('2.1.1.1')renvoie2.1.1.1 -
Spécifiez un entier dans la fonction
ip:-
La fonction
ip(12)renvoie0.0.0.12. -
Lorsque vous spécifiez un entier sous forme de chaîne de caractères dans la fonction
ip, elle renvoie une adresse IP équivalente à l’entrée.La fonction
ip('1025')renvoie0.0.4.1.
Cette fonction prend également en charge les opérations d’addition et de soustraction d’entiers et renvoie une adresse IP résultante.
-
Addition : La fonction
ip(1025) + ip(12)renvoie0.0.4.13. -
Soustraction : La fonction
ip('1025') - ip(12)renvoie0.0.3.245. -
Combinaison d’addition et de soustraction : La fonction
ip('1.1.1.1') + ip('1.1.1.1') – ip(2)renvoie2.2.2.0.
-
base64.encode()
La fonction base64.encode() prend un argument de type chaîne de caractères et renvoie la chaîne encodée en base64.
Exemple :
La fonction base64.encode("abcd") renvoie YWJjZA==.
base64.decode()
La fonction base64.decode() prend une chaîne encodée en base64 comme argument et renvoie la chaîne décodée.
Exemple :
La fonction base64.decode("YWJjZA==") renvoie abcd.
exists()
La fonction exists() prend un argument de n’importe quel type et renvoie un booléen. La valeur renvoyée est True si l’entrée a une valeur. La valeur renvoyée est False si l’argument d’entrée n’a pas de valeur (c’est-à-dire, aucune valeur).
Considérons que $parameters.monitor est un paramètre facultatif. Si vous fournissez une valeur à ce paramètre lors de la création d’un pack de configuration, la fonction exists($parameters.monitor) renvoie True.
Sinon, elle renvoie False.
filter()
La fonction filter() prend deux arguments.
Argument 1 : une fonction de substitution qui prend un argument et renvoie une valeur booléenne.
Argument 2 : une liste.
La fonction renvoie un sous-ensemble de la liste originale où chaque élément est évalué à True lorsqu’il est passé à la fonction de substitution du premier argument.
Exemple :
Supposons que nous ayons défini une fonction de substitution comme suit.
Substitutions:
x(a): $a != 81
Cette fonction renvoie True si la valeur d’entrée n’est pas égale à 81. Sinon, elle renvoie False.
Supposons que $parameters.ports soit [81, 80, 81, 89].
La fonction filter($substitutions.x, $parameters.ports) renvoie [80, 89] en supprimant toutes les occurrences de 81 de la liste.
if-then-else()
La fonction if-then-else() prend trois arguments.
Argument 1 : expression booléenne
Argument 2 : toute expression
Argument 3 : toute expression (facultatif)
Si l’expression de l’argument 1 est évaluée à True, la fonction renvoie la valeur de l’expression fournie comme argument 2.
Sinon, si l’argument 3 est fourni, la fonction renvoie la valeur de l’expression de l’argument 3.
Si l’argument 3 n’est pas fourni, la fonction renvoie no.
Exemple 1 :
La fonction if-then-else($parameters.servicetype == HTTP, 80, 443) renvoie 80 si $parameters.servicetype a la valeur HTTP. Sinon, la fonction renvoie 443.
Exemple 2 :
La fonction if-then-else($parameters.servicetype == HTTP, $parameters.hport, $parameters.sport) renvoie la valeur de $parameters.hport si $parameters.servicetype a la valeur HTTP.
Sinon, la fonction renvoie la valeur de $parameters.sport.
Exemple 3 :
La fonction if-then-else($parameters.servicetype == HTTP, 80) renvoie 80 si $parameters.servicetype a la valeur HTTP.
Sinon, la fonction ne renvoie aucune valeur.
join()
La fonction join() prend deux arguments :
Argument 1 : liste de nombres, de tcp-ports, de chaînes de caractères ou d’adresses IP
Argument 2 : chaîne de délimitation (facultatif)
Cette fonction joint les éléments de la liste fournie comme premier argument en une chaîne de caractères, où chaque élément est séparé par la chaîne de délimitation fournie comme deuxième argument. Si le deuxième argument n’est pas fourni, les éléments de la liste sont joints en une seule chaîne.
Exemple :
-
$parameters.portsest[81, 82, 83].-
Avec argument de délimitation :
La fonction
join($parameters.ports, '-')renvoie81-82-83. -
Sans argument de délimitation :
La fonction
join($parameters.ports)renvoie818283.
-
split()
La fonction split() divise une chaîne d’entrée en plusieurs listes en fonction des séparateurs spécifiés. Si aucun séparateur ou un séparateur vide ('') n’est spécifié, cette fonction considère l’espace comme un séparateur et divise la chaîne en listes.
Exemples :
-
La fonction
split('Example_string_split', 's')renvoie['Example_','tring_','plit']. -
La fonction
split('Example string split')renvoie['Example','string','split']. -
La fonction
split('Example string split', '')renvoie['Example','string','split']. -
La fonction
split('Example string')renvoie['Example','string'].Cette fonction considère les espaces continus comme un seul espace.
map()
La fonction map() prend deux arguments ;
Argument 1 : toute fonction
Argument 2 : une liste d’éléments.
La fonction renvoie une liste où chaque élément de la liste est le résultat de l’application de la fonction map() (premier argument) à l’élément correspondant du deuxième argument.
Fonctions autorisées dans l’argument 1 :
-
Fonctions intégrées qui prennent un argument :
base64.encode, base64.decode, bin, bool, exists, hex, int, ip, len, lower, upper, oct, quotewrap, str, trim, upper, url.encode, url.decode -
Fonctions de substitution qui prennent au moins un argument.
Exemple :
Supposons que $parameters.nums soit [81, 82, 83].
-
Mappage à l’aide d’une fonction intégrée, str
La fonction
map(str, $parameters.nums)renvoie["81", "82", "83"]Le résultat de la fonction map est la liste de chaînes de caractères où chaque élément est calculé en appliquant la fonction str à l’élément correspondant de la liste d’entrée ($parameters.nums).
-
Mappage à l’aide d’une fonction de substitution
-
Substitutions :
add-10(port): $port + 10 -
Expression :
La fonction
map($substitutions.add-10, $parameters.nums)renvoie une liste de nombres :[ 91, 92, 93 ]
-
Le résultat de cette fonction map est une liste de nombres, chaque élément étant calculé en appliquant la fonction de substitution $substitutions.add-10 à l’élément correspondant de la liste d’entrée ($parameters.nums).
quotewrap()
La fonction quotewrap() prend une chaîne de caractères comme argument et renvoie une chaîne après avoir ajouté un guillemet double avant et après la valeur d’entrée.
Exemple :
La fonction quotewrap("ADM") renvoie "mas"
replace()
La fonction replace() prend trois arguments :
Argument 1 : chaîne de caractères
Argument 2 : chaîne de caractères ou liste
Argument 3 : chaîne de caractères (facultatif)
La fonction remplace toutes les occurrences de l’argument deux par l’argument trois dans l’argument un.
Si l’argument trois n’est pas fourni, toutes les occurrences de l’argument deux sont supprimées de l’argument un (en d’autres termes, remplacées par une chaîne vide).
Remplace une sous-chaîne par une autre sous-chaîne :
-
La fonction
replace('abcdef', 'def', 'xyz')renvoieabcxyz.Toutes les occurrences de
defsont remplacées parxyz. -
replace('abcdefabc', 'def')renvoieabcabc.Comme il n’y a pas de troisième argument,
defest supprimé de la chaîne résultante.
Spécifiez la liste des caractères que vous souhaitez remplacer dans une chaîne de caractères.
$parameters.spl_chars = ['@', '#', '!', '%']
Cette liste contient les valeurs à remplacer dans une chaîne d’entrée.
La fonction replace('An#example@to%replace!characters', $parameters.spl_chars, '_') renvoie An_example_to_replace_characters.
La chaîne de sortie contient des tirets bas (_) à la place des caractères spécifiés dans la liste $parameters.spl_chars.
trim()
La fonction trim() renvoie une chaîne de caractères où les espaces de début et de fin sont supprimés de la chaîne d’entrée.
Exemple :
La fonction trim(' abc ') renvoie abc.
truncate()
La fonction truncate() prend deux arguments :
Argument 1 : chaîne de caractères
Argument 2 : nombre
La fonction renvoie une chaîne de caractères où la chaîne d’entrée de l’argument un est tronquée à la longueur spécifiée par l’argument deux.
Exemple :
La fonction truncate('NetScaler ADM', 6) renvoie Citrix.
distinct()
La fonction distinct() extrait les éléments uniques d’une liste d’entrée.
Exemples :
Si $parameters.input_list est ['ADM', 'ADC', 'VPX', 'ADC', 'ADM', 'CPX'], la fonction distinct($parameters.input_list) renvoie ['ADM', 'ADC', 'VPX', 'CPX'].
url.encode()
La fonction url.encode() renvoie une chaîne de caractères où les caractères sont transformés à l’aide du jeu de caractères ASCII conformément à la RFC 3986.
Exemple :
La fonction url.encode("a/b/c") renvoie a%2Fb%2Fc.
url.decode()
La fonction url.decode() renvoie une chaîne de caractères où l’argument encodé en URL est décodé en une chaîne de caractères normale conformément à la RFC 3986.
Exemple :
La fonction url.decode("a%2Fb%2Fc") renvoie a/b/c.
is-ipv4()
La fonction is-ipv4() prend une adresse IP comme argument et renvoie le booléen True si l’adresse IP est au format IPv4.
La fonction is-ipv4(10.10.10.10) renvoie True
is-ipv6()
La fonction is-ipv6() prend une adresse IP comme argument et renvoie le booléen True si l’adresse IP est au format IPv6.
La fonction is-ipv6(2001:DB8::) renvoie True
startswith()
La fonction startswith() détermine si une chaîne de caractères commence par un préfixe donné. Cette fonction nécessite deux arguments de type chaîne de caractères obligatoires.
startswith(str, sub_str)
Cette fonction renvoie True lorsque la chaîne de caractères (str) commence par la sous-chaîne (sub_str).
Exemples :
- La fonction
startswith('Citrix', 'Ci')renvoieTrue. - La fonction
startswith('Citrix', 'iC')renvoieFalse - La fonction
startswith('Citrix', 'Ab')renvoieFalse
endswith()
La fonction endswith() détermine si une chaîne de caractères se termine par un suffixe donné. Cette fonction nécessite deux arguments de type chaîne de caractères obligatoires.
endswith(str, sub_str)
Cette fonction renvoie True lorsque la chaîne de caractères (str) se termine par la sous-chaîne (sub_str).
Exemples :
- La fonction
endswith('Citrix', 'ix')renvoieTrue. - La fonction
endswith('Citrix', 'Ix')renvoieFalse. - La fonction
endswith('Citrix', 'ab')renvoieFalse.
contains()
La fonction contains() détermine si une chaîne de caractères contient une sous-chaîne donnée. Cette fonction nécessite deux arguments de type chaîne de caractères obligatoires.
contains(str, sub_str)
Cette fonction renvoie True lorsque la sous-chaîne (sub_str) est contenue n’importe où dans la chaîne de caractères (str).
Exemple :
- La fonction
contains('Citrix', 'tri')renvoieTrue. - La fonction
contains('Citrix', 'Ci')renvoieTrue. - La fonction
contains('Citrix', 'ti')renvoieFalse
substring()
Utilisez la fonction substring() pour extraire une sous-chaîne d’une chaîne de caractères.
substring(str, start_index, end_index)
Cette fonction nécessite deux arguments obligatoires et un argument entier facultatif.
-
str(Obligatoire) -
start_index(Obligatoire) -
end_index(Facultatif)
Cette fonction renvoie la sous-chaîne de la chaîne de caractères (str) qui se trouve entre les positions d’index spécifiées. Si vous ne spécifiez pas la position de l’index de fin, la fonction extrait la sous-chaîne de l’index de début jusqu’à la fin de la chaîne.
Remarque
Lorsque vous spécifiez
end_index, la sous-chaîne exclut le caractère à la positionend_index.
Exemple :
-
La fonction
substring('Citrix', 2)renvoietrix -
La fonction
substring('Citrix', 10)renvoie (")Dans cet exemple, la fonction renvoie une chaîne vide car la position
start_indexest invalide. -
La fonction
substring('Citrix', 2, 4)renvoietrDans cet exemple, la fonction extrait les caractères entre les positions d’index 2 et 4.
-
La fonction
substring('Citrix', -3)renvoierixSi vous souhaitez extraire les caractères qui se trouvent à la fin de la chaîne, spécifiez une valeur négative pour l’argument
start_index.Dans cet exemple, la fonction extrait la sous-chaîne qui inclut les trois derniers caractères de la chaîne.
Dans cet article
- str()
- int()
- bool()
- len()
- min()
- max()
- bin()
- oct()
- hex()
- lower()
- upper()
- sum()
- pow()
- ip()
- base64.encode()
- base64.decode()
- exists()
- filter()
- if-then-else()
- join()
- split()
- map()
- quotewrap()
- replace()
- trim()
- truncate()
- distinct()
- url.encode()
- url.decode()
- is-ipv4()
- is-ipv6()
- startswith()
- endswith()
- contains()
- substring()