AScript是应用型负载均衡ALB(Application Load Balancer)面向标准版实例推出的可编程脚本,其中A代表Agile(敏捷)、Application(面向应用)和Aliyun(阿里云自研)。AScript有强大的自定义能力,当ALB控制台上的标准配置无法满足您的业务需求时,可通过简单的可编程脚本AScript来实现功能的二次开发。

AScript简介

AScript通过简单易学的语法和庞大的函数库,能够积木式地组合出个性化的ALB配置。

Ascript组成图

AScript内置了可以识别的变量、简单的判断语句,同时提供了可直接调用的封装好的函数。通过简单的变量判断并调用现成的函数,即可满足您对转发规则的各类定制需求,有效地解决配置需求无法实现、业务变更不敏捷的问题。

关于AScript的语法的更多信息,请参见AScript语法

应用场景

场景 描述
防盗链需求 应用于自定义鉴权算法、User-Agent黑名单和Referer白名单等场景需求。基于请求参数、Cookie或其他复杂算法等各类鉴权需求,帮您快速实现鉴权,从而完成对资源的保护。
黑白名单管控 通过设置客户端IP的黑白名单,来完成权限管控。
请求头和响应头控制 可以使用AScript脚本对请求参数和请求头等变量进行灵活修改。
改写和重定向 通过改写URI、文件后缀、添加URI前缀、302重定向等操作,实现您的改写和重定向目标。多应用在多语言版本的网站之上,例如中文网站可能会302重定向到1个位置,英文网站或者德文网站可能会302重定向到不同的位置。

功能计费

目前仅标准版ALB实例支持AScript功能。系统根据ALB实例中生效中的AScript代码行数和规则数来决定是否计费。
  • 一个实例中生效的AScript代码行数小于20行时,不影响LCU中的规则评估数。
    规则评估数=QPS×(规则评估数-免费规则数10)
  • 一个实例中生效的AScript代码行数大于20行时,通过影响每个LCU中规则评估数来计费:
    规则评估数=QPS×(规则评估数-免费规则数10)+QPS×(生效的AScript代码总行数-免费的AScript代码行数20)
规则评估数计算示例
一个ALB实例每秒的新建连接数有100个,每个连接持续3分钟,每个连接每秒发送4个请求,同时您创建了20条转发规则和30行AScript代码,那么您的规则评估数对应的LCU的计算过程如下:
  1. 平均每秒有100个新建连接,每个连接平均每秒发送4个请求,则每秒接收请求量QPS为:
    100×4=400(个)
  2. 您配置了20条转发规则和30行AScript代码,则每秒产生的收费规则评估数为:
    (20-10)×400+(30-20)×400=8000(个)
  3. 每个LCU每秒提供1000个规则评估数,则可换算的LCU数为:
    8000÷1000=8

关于规则评估数如何影响LCU费,更多信息,请参见ALB计费规则