Extensiones de directivas

La función de extensión de directiva le permite escribir funciones de extensión para tipos de directiva integrados. Las extensiones se pueden utilizar en expresiones de directiva, al igual que las funciones integradas. Se ejecutan cuando se evalúan las expresiones de directiva correspondientes. Esta función es útil para:

  • Adición de funciones personalizadas a directivas existentes.
  • Implementación de construcciones lógicas para requerimientos complejos de clientes.

La función de extensión de directiva aborda estas limitaciones al permitir a los usuarios escribir funciones de extensión para los tipos de directiva integrados. Las extensiones se pueden utilizar en las expresiones de directiva, al igual que las funciones integradas. Se ejecutan cuando se evalúan las expresiones de directiva correspondientes.

En la tabla siguiente se enumeran los tipos de directivas que se pueden utilizar al escribir una extensión y sus asignaciones asociadas.

Tipo de directiva Tipo de directiva asignado Resultado
TEXTO_T NSTEXT Cadena
BOOL_AT NSBOOL Booleano
NÚMERO_AT NSNUM Número (punto flotante de doble precisión)
DOUBLE_AT NSDOUBLE Número (punto flotante de doble precisión)

Requisitos previos para el uso de extensiones de directiva

Las funciones importadas deben ajustarse a las normas de directiva existentes. Por lo tanto:

  • El nombre de la función debe comenzar con una letra y puede contener números o guiones bajos.
  • Las directivas Citrix ADC consideran que el nombre de la función no distingue entre mayúsculas y minúsculas.
  • La función debe devolver un solo valor incluso si el lenguaje de extensión devuelve varios valores.
  • Las funciones con un número variable de argumentos no son compatibles.

¿Cómo funcionan las extensiones de directivas?

Las directivas existentes en un dispositivo Citrix ADC utilizan un intérprete para evaluar las funciones, que se importan en un archivo de extensión de directiva. Cuando un usuario importa una nueva función en un archivo de extensión de directiva:

  1. El archivo de extensión se valida para la sintaxis y otras condiciones.
  2. Si la validación falla, el error se notifica al usuario.
  3. Si la validación se realiza correctamente, el archivo de extensión se importa al dispositivo Citrix ADC y su contenido se puede utilizar en expresiones de directiva, al igual que cualquier función de directiva integrada
    1. Si la evaluación de la expresión de directiva devuelve un error durante el tiempo de ejecución, se informa como un evento undef y se incrementa el contador de errores asociado.

      Nota: Si se produce un evento undef de directiva y la regla de directiva contiene una o más funciones de extensión de directiva, el show ns extension <name> comando muestra los hits de undef cuando se aplican a esas extensiones de directiva. Si se anula la función de extensión, se incrementa el valor del contador de anulación.

    2. Si la evaluación de la expresión de directiva es correcta, la evaluación de la expresión se reanuda hasta que se evalúe toda la expresión o hasta que se aborte debido a un error.

Si la función de extensión tarda demasiado en ejecutarse, se anula y se incrementa el contador de errores correspondiente a esa función de extensión. La función de extensión está protegida, lo que impide:

  • Uso excesivo de CPU en el dispositivo Citrix ADC.
  • Uso excesivo de memoria en el dispositivo Citrix ADC.
  • Uso de bibliotecas integradas perjudiciales o bibliotecas o binarios de terceros.
  • Scripts de larga duración que podrían provocar el reinicio del dispositivo Citrix ADC.

Extensiones de directivas