Extensions de stratégie

La fonctionnalité d’extension de stratégie vous permet d’écrire des fonctions d’extension pour les types de stratégie intégrés. Les extensions peuvent être utilisées dans les expressions de stratégie, tout comme les fonctions intégrées. Ils sont exécutés lorsque les expressions de stratégie correspondantes sont évaluées. Cette fonctionnalité est utile pour :

  • Ajout de fonctions personnalisées aux stratégies existantes.
  • Mise en œuvre de constructions logiques pour les besoins complexes des clients.

La fonctionnalité d’extension de stratégie corrige ces limitations en permettant aux utilisateurs d’écrire des fonctions d’extension pour les types de stratégie intégrés. Les extensions peuvent ensuite être utilisées dans les expressions de stratégie, tout comme les fonctions intégrées. Ils sont exécutés lorsque les expressions de stratégie correspondantes sont évaluées.

Le tableau suivant répertorie les types de stratégie qui peuvent être utilisés lors de l’écriture d’une extension, ainsi que les mappages associés.

Type de stratégie Type de stratégie mappée Résultat
TEXT_T NSTEXT Chaîne
BOOL_AT NSBOOL Booléen
NUM_AT NSNUM Nombre (virgule flottante double précision)
DOUBLE_AT NSDOUBLE Nombre (virgule flottante double précision)

Conditions préalables à l’utilisation des extensions de stratégie

Les fonctions importées doivent être conformes aux normes de stratégie existantes. Par conséquent :

  • Le nom de la fonction doit commencer par une lettre et peut contenir des nombres ou des traits de soulignement.
  • Le nom de la fonction est traité comme insensible à la casse par les stratégies Citrix ADC.
  • La fonction doit renvoyer une valeur unique même si le langage d’extension renvoie plusieurs valeurs.
  • Les fonctions avec un nombre variable d’arguments ne sont pas prises en charge.

Comment fonctionnent les extensions de stratégie ?

Les stratégies existantes sur une appliance Citrix ADC utilisent un interpréteur pour évaluer les fonctions importées dans un fichier d’extension de stratégie. Lorsqu’un utilisateur importe une nouvelle fonction dans un fichier d’extension de stratégie :

  1. Le fichier d’extension est validé pour la syntaxe et d’autres conditions.
  2. Si la validation échoue, l’erreur est signalée à l’utilisateur.
  3. Si la validation réussit, le fichier d’extension est importé dans l’appliance Citrix ADC et son contenu peut être utilisé dans les expressions de stratégie, comme n’importe quelle fonction de stratégie intégrée
    1. Si l’évaluation de l’expression de stratégie renvoie une erreur pendant l’exécution, elle est signalée comme un événement undef et le compteur d’erreur associé est incrémenté. Remarque : Si un événement undef de stratégie se produit et que la règle de stratégie contient une ou plusieurs fonctions d’extension de stratégie, la show ns extension <name> commande affiche les appels undef lorsqu’elle est appliquée à ces extensions de stratégie. Si la fonction d’extension est abandonnée, la valeur du compteur d’abandon est incrémentée.
    2. Si l’évaluation de l’expression de stratégie réussit, l’évaluation de l’expression reprend jusqu’à ce que l’expression entière soit évaluée ou jusqu’à ce qu’elle soit abandonnée en raison d’une erreur.

Si la fonction d’extension prend trop de temps à s’exécuter, elle est annulée et le compteur d’erreur relatif à cette fonction d’extension est incrémenté. La fonction d’extension est en bac à sable, ce qui empêche :

  • Utilisation excessive du processeur sur l’appliance Citrix ADC.
  • Utilisation excessive de la mémoire sur l’appliance Citrix ADC.
  • Utilisation de bibliothèques intégrées nuisibles ou de bibliothèques ou de binaires tiers.
  • Scripts de longue durée pouvant entraîner le redémarrage de l’appliance Citrix ADC.