Extensiones de directivas
La función de extensión de directivas permite escribir funciones de extensión para los tipos de directivas integradas. Las extensiones se pueden usar en expresiones directivas, al igual que las funciones integradas. Se ejecutan cuando se evalúan las expresiones de directiva correspondientes. Esta función es útil para:
- Agregar funciones personalizadas a las directivas existentes.
- Implementación de construcciones lógicas para requisitos complejos de los clientes.
La función de extensión de directivas aborda estas limitaciones al permitir a los usuarios escribir funciones de extensión para los tipos de directivas integradas. A continuación, las extensiones se pueden usar en las expresiones de directiva, al igual que las funciones integradas. Se ejecutan cuando se evalúan las expresiones de directiva correspondientes.
La siguiente tabla muestra los tipos de directivas que se pueden usar al escribir una extensión y sus mapeos asociados.
Tipo de directiva | Tipo de directiva mapeado | Resultado |
---|---|---|
TEXTO_T | TEXTO SIGUIENTE | Cadena |
BOOL_AT | NSBOOL | Booleano |
NUM_AT | NSNUM | Número (punto flotante de doble precisión) |
DOUBLE_AT | NSDOUBLE | Número (punto flotante de doble precisión) |
Requisitos previos para usar extensiones de directivas
Las funciones importadas deben cumplir con los estándares de directivas existentes. Por lo tanto:
- El nombre de la función debe empezar por una letra y puede contener números o caracteres de subrayado.
- Las directivas de NetScaler consideran que el nombre de la función no distingue entre mayúsculas y minúsculas.
- La función debe devolver un solo valor aunque el lenguaje de la extensión devuelva varios valores.
- No se admiten funciones con un número variable de argumentos.
¿Cómo funcionan las extensiones de directivas?
Las directivas existentes en un dispositivo NetScaler utilizan un intérprete para evaluar las funciones, que se importan en un archivo de extensión de directivas. Cuando un usuario importa una nueva función en un archivo de extensión de directivas:
- La sintaxis y otras condiciones del archivo de extensión se validan.
- Si se produce un error en la validación, se informa al usuario del error.
- Si la validación se realiza correctamente, el archivo de extensión se importa al dispositivo NetScaler y su contenido se puede utilizar en expresiones de directiva, como cualquier función de directiva integrada
-
Si la evaluación de la expresión directiva devuelve un error durante el tiempo de ejecución, se informa como un evento de indefinición y se incrementa el contador de errores asociado.
Nota: Si se produce un evento de indefinición de directiva y la regla de directiva contiene una o más funciones de extensión de directiva, el comando
show ns extension <name>
muestra las visitas indefinidas cuando se aplica a esas extensiones de directiva. Si se cancela la función de extensión, se incrementa el valor del contador de abortos. -
Si la evaluación de la expresión directiva se realiza correctamente, la evaluación de la expresión se reanuda hasta que se evalúe toda la expresión o hasta que se cancele 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 la CPU en el dispositivo NetScaler.
- Uso excesivo de memoria en el dispositivo NetScaler.
- Uso de bibliotecas integradas dañinas o bibliotecas o binarios de terceros.
- Secuencias de comandos de ejecución prolongada que podrían provocar el reinicio del dispositivo NetScaler.