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.
  • Mettre en œuvre des constructions logiques pour répondre aux exigences 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 Sortie
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 chiffres ou des traits de soulignement.
  • Le nom de la fonction ne fait pas la distinction entre majuscules et minuscules selon les stratégies de NetScaler.
  • La fonction doit renvoyer une seule valeur même si le langage d’extension renvoie plusieurs valeurs.
  • Les fonctions comportant 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 NetScaler utilisent un interpréteur pour évaluer les fonctions, qui sont 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. La syntaxe et d’autres conditions du fichier d’extension sont validées.
  2. Si la validation échoue, l’erreur est signalée à l’utilisateur.
  3. Si la validation aboutit, le fichier d’extension est importé dans l’appliance NetScaler et son contenu peut être utilisé dans des 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 de sous-définition 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 résultats 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 l’exécution de la fonction d’extension prend trop de temps, elle est abandonnée et le compteur d’erreurs relatif à cette fonction d’extension est incrémenté. La fonction d’extension est sandboxée, ce qui empêche :

  • Utilisation excessive du processeur sur l’appliance NetScaler.
  • Utilisation excessive de la mémoire sur l’appliance NetScaler.
  • Utilisation de bibliothèques intégrées nuisibles ou de bibliothèques ou de fichiers binaires tiers.
  • Scripts de longue durée susceptibles de provoquer le redémarrage de l’appliance NetScaler.
Extensions de stratégie