AScript有强大的转发规则自定义能力,当ALB控制台上的标准配置无法满足您的业务需求时,可通过简单的可编程脚本AScript来实现功能的二次开发。
AScript简介
AScript通过简单易学的语法和庞大的函数库,能够积木式地组合出个性化的ALB配置。
AScript内置了可以识别的变量、简单的判断语句,同时提供了可直接调用的封装好的函数。通过简单的变量判断并调用现成的函数,即可满足您对转发规则的各类定制需求,有效地解决配置需求无法实现、业务变更不敏捷的问题。
关于AScript的语法的更多信息,请参见AScript语法规则。
应用场景
| 场景 | 描述 | 
| 防盗链需求 | 应用于自定义鉴权算法、User-Agent黑名单和Referer白名单等场景需求。基于请求参数、Cookie或其他复杂算法等各类鉴权需求,帮您快速实现鉴权,从而完成对资源的保护。 | 
| 黑白名单管控 | 通过设置客户端IP的黑白名单,来完成权限管控。 | 
| 请求头和响应头控制 | 可以使用AScript脚本对请求参数和请求头等变量进行灵活修改。 | 
| 改写和重定向 | 通过改写URI、文件后缀、添加URI前缀、302重定向等操作,实现您的改写和重定向目标。多应用在多语言版本的网站之上,例如中文网站可能会302重定向到1个位置,英文网站或者德文网站可能会302重定向到不同的位置。 | 
功能计费
关于规则评估数如何影响LCU费,更多信息,请参见ALB计费规则。
工作原理
运行原理
您配置的AScript规则与ALB控制台上的标准配置一样,均用于处理ALB请求。
当客户端请求到达ALB监听后,ALB监听会根据您在控制台上配置的转发规则对请求进行处理。以ALB控制台上的标准配置为参照物,AScript可选择在规则处理前或规则处理后生效。
规则模型
AScript的规则模型如下:
- 核心出发点是将不同业务功能隔离至不同规则,以及控制规则的执行流。 
- 每条规则可以各自选择规则的执行位置。 
- 以监听维度来进行设计的。 
规则执行位置
AScript规则的执行位置包含请求方向规则执行前、请求方向规则执行后和响应方向规则执行前。
- 请求方向规则执行前/后:常用文件自动重命名、文件后缀小写化、添加URI前缀和文件后缀名改写等场景。 
- 响应方向规则执行前:常用文件自动重命名等场景。 
规则执行情况
您可以在配置AScript规则时,在高级配置中选中携带_es_dbg参数,开启相应的调试响应头,以输出规则执行记录。
规则执行情况字段详细说明:
- 规则ID:每条规则的唯一性标识,格式为 - as-****。
- 执行情况code及说明: - 执行情况code - 执行情况说明 - 空 - 未执行。 - 0 - 执行命中。 - 当规则含有 - if condition {},且- condition为真。- 1 - 执行未命中。 - 当规则含有 - if condition {},且- condition为假;或规则不包含- if condition {}。- 2 - 执行异常。 
- 执行耗时: - 单位:微秒us。 
- 默认值:-1。 
- 前端呈现的耗时区间分布: - 第1档:0~100us 
- 第2档:100~500us 
- 第3档:500~1000us 
- 第4档:1000~5000us 
- 第5档:5000~20000us 
- 第6档:20000~50000us 
- 第7档:>50000us 
 
 
- AScript规则的中断执行: - 默认值:-1。