Richtlinienerweiterungen

Mit der Richtlinienerweiterung können Sie Erweiterungsfunktionen für integrierte Richtlinientypen schreiben. Die Erweiterungen können in Richtlinienausdrücken verwendet werden, genau wie integrierte Funktionen. Sie werden ausgeführt, wenn die entsprechenden Richtlinienausdrücke ausgewertet werden. Diese Funktion ist nützlich für:

  • Hinzufügen benutzerdefinierter Funktionen zu vorhandenen Richtlinien.
  • Implementierung von logischen Konstrukten für komplexe Kundenanforderungen.

Das Richtlinienerweiterungsfeature behebt diese Einschränkungen, indem es Benutzern ermöglicht wird, Erweiterungsfunktionen für integrierte Richtlinientypen zu schreiben. Die Erweiterungen können dann in den Richtlinienausdrücken verwendet werden, genau wie integrierte Funktionen. Sie werden ausgeführt, wenn die entsprechenden Richtlinienausdrücke ausgewertet werden.

In der folgenden Tabelle sind die Richtlinientypen aufgeführt, die beim Schreiben einer Erweiterung verwendet werden können, sowie die zugehörigen Zuordnungen.

Richtlinientyp Zugeordneter Richtlinientyp Ausgabe
TEXT_T NSTEXT Zeichenfolge
BOOL_AT NSBOOL Boolesch
NUM_AT NSNUM Zahl (Gleitkommazahl mit doppelter Genauigkeit)
DOUBLE_AT NSDOUBLE Zahl (Gleitkommazahl mit doppelter Genauigkeit)

Voraussetzungen für die Verwendung von Richtlinienerweiterungen

Die importierten Funktionen müssen den vorhandenen Richtlinienstandards entsprechen. Daher:

  • Der Funktionsname muss mit einem Buchstaben beginnen und kann Zahlen oder Unterstriche enthalten.
  • Der Funktionsname wird von Citrix ADC Richtlinien als Groß-/Kleinschreibung nicht beachtet.
  • Die Funktion muss einen einzelnen Wert zurückgeben, auch wenn die Erweiterungssprache mehrere Werte zurückgibt.
  • Funktionen mit einer variablen Anzahl von Argumenten werden nicht unterstützt.

Wie funktionieren Richtlinienerweiterungen?

Die vorhandenen Richtlinien auf einer Citrix ADC Appliance verwenden einen Interpreter, um die Funktionen auszuwerten, die in eine Richtlinienerweiterungsdatei importiert werden. Wenn ein Benutzer eine neue Funktion in eine Richtlinienerweiterungsdatei importiert:

  1. Die Erweiterungsdatei wird auf Syntax und andere Bedingungen überprüft.
  2. Wenn die Validierung fehlschlägt, wird der Fehler an den Benutzer gemeldet.
  3. Wenn die Validierung erfolgreich ist, wird die Erweiterungsdatei in die Citrix ADC Appliance importiert und ihr Inhalt kann wie jede integrierte Richtlinienfunktion in Richtlinienausdrücken verwendet werden.
    1. Wenn die Auswertung des Richtlinienausdrucks während der Laufzeit einen Fehler zurückgibt, wird es als undef-Ereignis gemeldet und der zugehörige Fehlerindikator wird erhöht.

      Hinweis: Wenn ein Richtlinien undef-Ereignis eintritt und die Richtlinienregel eine oder mehrere Richtlinienerweiterungsfunktionen enthält, zeigt der show ns extension <name> Befehl die undef-Treffer an, wenn er auf diese Richtlinienerweiterungen angewendet wird. Wenn die Erweiterungsfunktion abgebrochen wird, wird der Abbruchzählerwert erhöht.

    2. Wenn die Auswertung des Richtlinienausdrucks erfolgreich ist, wird die Ausdrucksauswertung fortgesetzt, bis der gesamte Ausdruck ausgewertet wird oder bis er aufgrund eines Fehlers abgebrochen wird.

Wenn die Erweiterungsfunktion zu lange dauert, wird sie abgebrochen, und der Fehlerzähler für diese Erweiterungsfunktion wird erhöht. Die Erweiterungsfunktion ist sandboxed, was Folgendes verhindert:

  • Übermäßige CPU-Auslastung auf der Citrix ADC Appliance.
  • Übermäßige Speichernutzung auf der Citrix ADC Appliance.
  • Verwendung schädlicher integrierter Bibliotheken oder Bibliotheken von Drittanbietern oder Binärdateien.
  • Langfristige Skripte, die möglicherweise einen Neustart der Citrix ADC Appliance verursachen könnten.

Richtlinienerweiterungen