Application Delivery Management
Merci pour vos commentaires

Ce article a été traduit automatiquement. (Clause de non responsabilité)

Interpolations sur place

Il est désormais possible de remplacer une ou plusieurs parties d’une chaîne à l’aide d’une ou plusieurs expressions StyleBook. Lorsque ces expressions de chaîne sont évaluées par le compilateur StyleBook, la partie de la chaîne qui utilise une expression StyleBook est remplacée par la valeur de l’expression. Pour inclure des expressions StyleBook dans une chaîne, nous utilisons la notation suivante :

              “…%{…}%…”

où les caractères entre “ %{ “ and “}%” forment une expression StyleBook. Ces expressions sont appelées « interpolations sur place. »

Par exemple, la chaîne « lb-%{$parameters.appname}%-svc » est une expression de chaîne avec interpolation sur place d’une expression StyleBook. La valeur de l’expression de chaîne dépend de la valeur de l’expression d’interpolation. Considérez que $parameters.appname est affecté avec “app1.” L’expression de chaîne est ensuite évaluée à lb-app1-svc. Cela permet aux valeurs de ne pas être codées en dur dans des expressions de chaîne, mais d’être évaluées en fonction des valeurs définies par l’utilisateur.

Un cas d’utilisation pratique des interpolations sur place consiste à paramétrer les expressions de stratégie dans StyleBooks. Imaginons un scénario dans lequel vous souhaitez écrire une expression de stratégie qui vérifie si l’URL HTTP contient un mot spécifique, par exemple « jpeg ».  

Pour cela, vous écrivez une expression de stratégie comme suit : “HTTP.REQ.URL.CONTAINS(\“jpeg\”)”.

Maintenant, si vous souhaitez paramétrer l’objet dans l’URL HTTP, vous pouvez ajouter un paramètre de chaîne dans le StyleBook, par exemple $parameters.url-object. L’expression de stratégie doit être écrite en fonction de ce paramètre. Pour ce faire, vous utilisez la concaténation de chaînes pour obtenir le résultat. L’expression ressemblerait à :

              str(“HTTP.REQ.URL.CONTAINS(\”” + $parameters.url-object + “\”)”)

Si $parameter.url-object est assigné « csv », l’expression ci-dessus correspond à “HTTP.REQ.URL.CONTAINS(\“csv\”)”. Cependant, cette expression n’est pas facile à lire. Pour faciliter la lecture et la compréhension de ce paramétrage, vous pouvez utiliser des interpolations sur place.

L’expression avec interpolation sur place est maintenant :

              str(“HTTP.REQ.URL.CONTAINS(%{quotewrap($parameters.url-object)}%)”)

Dans l’expression ci-dessus, vous avez utilisé une expression d’interpolation qui ajoute les guillemets internes autour de la valeur du $parameters.url-object. Le résultat de cette expression est identique à celui ci-dessus, mais il semble plus intuitif et plus proche du résultat réel.

Types autorisés à l’intérieur des interpolations

Vous pouvez utiliser des expressions qui génèrent des valeurs des types suivants dans les interpolations : booléen, nombre, port TCP, adresse IP et chaîne. La valeur générée est automatiquement transformée en chaîne lorsque les interpolations sont remplacées par le résultat.

Les expressions de chaîne peuvent comporter 0, 1 ou plusieurs interpolations. Dans une interpolation séquentielle, différentes parties de l’expression de chaîne peuvent être remplacées par différentes expressions StyleBook. Par exemple, la chaîne lb-%{$parameters.appname}%-%{$parameters.vip}% renvoie “lb-app1-1.1.1.1”, si $parameters.appname est “app1” et $parameters.vip est “1.1.1.1”

Les expressions de chaîne prennent également en charge les interpolations imbriquées. Autrement dit, une expression d’interpolation peut être imbriquée dans une autre expression d’interpolation afin que la valeur d’une expression puisse devenir une entrée dans la seconde expression.

Par exemple, considérez une chaîne “%{lb-%{$parameters.port + 1}%}%”

La chaîne interne, “%{$parameters.port + 1}%” returns “lb-81” si $parameters.portest égal à 80. Ici, cette expression est imbriquée dans une autre expression d’interpolation.

Le tableau suivant décrit les différents types d’interpolations avec des exemples et des résultats correspondants. Les valeurs des paramètres utilisés dans les exemples sont les suivantes :

  • $parameters.appname: “lb1”
  • $parameters.vip: “1.1.1.1”
  • $parameters.n1: 1
  • $parameters.n2: 3

Interpolations simples

Expression Résultat
lb-%{$parameters.appname}%-def lb-lb1-def
   

Conversions automatiques de type

Expression Résultat
lb-%{1}% lb-1
lb-%{$parameters.vip}% lb-1.1.1.1
lb-%{true}% lb-True
   

Interpolations séquentielles

Expression Résultat
%{$parameters.appname}%-%{str($parameters.appname)}% lb1-lb1
lb-%{1}%-%{2}% lb-1-2
   

Interpolations imbriquées

Expression Résultat
%{abc-%{$parameters.n1 + 1}%}% abc-2
str(“%{abc-%{$parameters.n1}%}%-%{$parameters.n2}%”) bc-1-3
   

Interpolations avec quotewrap

Expression Résultat
str(“%{quotewrap(abcd)}%”)
str(“%{quotewrap(https://)}%+HTTP.REQ.HOSTNAME+HTTP.REQ.URL")
“abcd
“«code class=”language-plaintext highlighter-rouge”>https://”+HTTP.REQ.HOST NAME+HTTP.REQ.URL</code>
   

Caractères d’échappement dans les interpolations

Si les caractères “%{“ or “}%” font partie de la chaîne, vous devez fournir “\” comme caractère d’échappement afin que le compilateur StyleBook ne les évalue pas comme des balises d’interpolation.

Exemple :

str(“%{\%{ + str($parameters.vip) + }\%}%”) returns “%{1.1.1.1}%” if $parameters.vip is 1.1.1.1

Le tableau suivant décrit quelques expressions supplémentaires et leurs résultats :

Catégorie Expression Résultat
Escaping interpolations str(“%{str($parameters.n1) + }\%}%”) 1}%
  lb-%{str($parameters.n1) + }\%}% lb-1}%
  ”%{str($parameters.n1) + \”}\%\”}%” 1}%
     
La version officielle de ce document est en anglais. Certains contenus de la documentation Cloud Software Group ont été traduits de façon automatique à des fins pratiques uniquement. Cloud Software Group n'exerce aucun contrôle sur le contenu traduit de façon automatique, qui peut contenir des erreurs, des imprécisions ou un langage inapproprié. Aucune garantie, explicite ou implicite, n'est fournie quant à l'exactitude, la fiabilité, la pertinence ou la justesse de toute traduction effectuée depuis l'anglais d'origine vers une autre langue, ou quant à la conformité de votre produit ou service Cloud Software Group à tout contenu traduit de façon automatique, et toute garantie fournie en vertu du contrat de licence de l'utilisateur final ou des conditions d'utilisation des services applicables, ou de tout autre accord avec Cloud Software Group, quant à la conformité du produit ou service à toute documentation ne s'applique pas dans la mesure où cette documentation a été traduite de façon automatique. Cloud Software Group ne pourra être tenu responsable de tout dommage ou problème dû à l'utilisation de contenu traduit de façon automatique.
Interpolations sur place