- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
APV Technical Traning (v8.4) - ePolicy
议题介绍
Epolicy介绍
Epolicy的使用
脚本语法结构
脚本示例
注意参考
Epolicy介绍
是一种脚本语言扩展功能
基于TCL语言 Tools Command Language
语法结构遵循TCL语言
TCL语言的大部分命令和功能都可以使用
Array添加的扩展命令和功能
APV 8.4以上支持
可以灵活定制新的功能,而不需要开发新的feature
能实现一些CLI/webUI上没有的功能
可灵活处理双向流量
可处理大部分常用的负载均衡流量
支持命令和功能会不断添加
目前主要用于SLB的功能
议题介绍
Epolicy介绍
Epolicy的使用
脚本语法结构
脚本示例
注意参考
Epolicy的使用
Epolicy的组成
配置文件
脚本
配置使用方法
导入配置文件
导入脚本
VS和配置文件关联
VS和脚本关联
Epolicy的使用
Webui
Epolicy的使用
CLI
导入配置文件
epolicy import setting url setting_script_name
导入脚本
epolicy import script url script_name
VS和配置文件关联
epolicy attach setting vs_name setting_script_name
VS和脚本关联
epolicy attach script vs_name script_name
Epolicy的使用
配置文件
用于定义虚拟服务的网络流量类型
目前支持3种配置文件
网络流量类型
配置文件内容
HTTP
message::type http
Diameter
message::type binary
binary_message::length_start_offset 1
binary_message::length_end_offset 3
Generic TCP
message::type binary
Epolicy的使用
脚本
用于定义APV处理网络流量的行为和逻辑
遵循TCL语法结构
脚本主要由三部分组成:事件声明、流程控制、命令
Epolicy是事件驱动的语言(event-driven),流程控制语句和命令都必须在某一事件下执行
议题介绍
Epolicy介绍
Epolicy的使用
脚本语法结构
脚本示例
注意参考
事件声明 {
表达式 {
epolicy命令
}
}
基本语法格式
when HTTP_REQUEST_HEADER {
if { [http::method] == GET } {
slb::select_server r1
} else {
slb::select_server r2
}
}
Epolicy脚本语法结构
事件
事件 event
命令和流程控制语句必须在事件下定义
当网络流量触发某一事件时,APV会执行该事件下定义的语句
语法:
when 事件名{
……
}
事件
支持的事件
RULE_INIT
HTTP_REQUEST_HEADER
HTTP_REQUEST_BODY
HTTP_RESPONSE_HEADER
HTTP_RESPONSE_BODY
XML_BEGIN_ELEMENT
XML_TEXT
BINARY_MESSAGE
CONNECTION_OPENED
CONNECTION_FIN
CONNECTION_RESET
变量
基本操作
set varname
unset varname
incr varname steps
append varname arg1 arg2 …
concat arg1 arg2 arg3 …
Return a list valued by args, seperated by white space
变量
列表
set lst {{item 1} {item 2} {item 3}}
lindex list index
lindex [lindex [lindex $a 1] 2] 3 ? lindex $a {1 2 3}
lappend list value1 value2 …
linsert list index val1 val2 …
在index之前插入内容
lreplace list first last val1 val2 …
替换first至last之间的内容
如果变量不足,则删除对应部分
llength list
变量
全局变量
RULE_INIT事件内定义的均为全局变量
global varname 为全局变量
表达式与操作符 TCL Standar
文档评论(0)