政策的扩展
策略扩展特性使您能够为内置策略类型编写扩展函数。可以在策略表达式中使用扩展,就像内置函数一样。在计算相应的策略表达式时执行它们。此功能适用于:
- 向现有策略添加定制功能。
- 为复杂的客户需求实现逻辑构造。
策略扩展特性允许用户为内置的策略类型编写扩展函数,从而解决了这些限制。然后可以在策略表达式中使用扩展,就像内置函数一样。在计算相应的策略表达式时执行它们。
下表列出了在编写扩展时可以使用的策略类型及其关联映射。
策略类型 | 映射策略类型 | 输出 |
---|---|---|
TEXT_T | NSTEXT | 字符串 |
BOOL_AT | NSBOOL | 布尔 |
NUM_AT | NSNUM | 数(双精度浮点数) |
DOUBLE_AT | NSDOUBLE | 数(双精度浮点数) |
使用策略扩展的前提条件
导入的函数必须符合已有的策略标准。因此:
- 函数名必须以字母开头,可以包含数字或下划线。
- 在Citrix ADC策略中,函数名不区分大小写。
- 即使扩展语言返回多个值,函数也必须返回一个值。
- 不支持参数数量可变的函数。
策略扩展如何工作?
Citrix ADC设备上的现有策略使用解释器来评估函数,这些函数被导入到策略扩展文件中。当用户在策略扩展文件中导入一个新函数时:
- 对扩展文件进行语法和其他条件验证。
- 如果验证失败,则将错误报告给用户。
- 如果验证成功,则将扩展文件导入Citrix ADC设备,其内容可以在策略表达式中使用,就像任何内置策略函数一样
- 如果策略表达式计算在运行时返回错误,则将其作为undef事件报告,并增加相关的错误计数器。注意:如果发生策略undef事件,且策略规则包含一个或多个策略扩展函数,则
显示ns扩展名<名称>
命令显示应用到这些策略扩展时的undef命中。如果扩展函数被中止,中止计数器的值将递增。 - 如果策略表达式计算成功,表达式计算将继续进行,直到计算整个表达式为止,或者直到由于错误而终止为止。
- 如果策略表达式计算在运行时返回错误,则将其作为undef事件报告,并增加相关的错误计数器。注意:如果发生策略undef事件,且策略规则包含一个或多个策略扩展函数,则
如果扩展函数运行时间过长,则中止该扩展函数,并增加与该扩展函数相关的错误计数器。扩展函数是沙盒的,这防止了:
- Citrix ADC设备上的CPU使用率过高。
- Citrix ADC设备上的内存使用过多。
- 使用有害的内置库或第三方库或二进制文件。
- 长时间运行的脚本可能导致Citrix ADC设备重新启动。
政策的扩展
在本文中
复制!
失败了!