AScript原理介紹
AScript有強(qiáng)大的轉(zhuǎn)發(fā)規(guī)則自定義能力,當(dāng)ALB控制臺(tái)上的標(biāo)準(zhǔn)配置無(wú)法滿足您的業(yè)務(wù)需求時(shí),可通過(guò)簡(jiǎn)單的可編程腳本AScript來(lái)實(shí)現(xiàn)功能的二次開發(fā)。本文幫助您了解AScript的運(yùn)行原理、規(guī)則模型和規(guī)則生效位置。
運(yùn)行原理
您配置的AScript規(guī)則與ALB控制臺(tái)上的標(biāo)準(zhǔn)配置一樣,都是對(duì)ALB請(qǐng)求進(jìn)行處理。
當(dāng)客戶端請(qǐng)求到達(dá)ALB監(jiān)聽后,ALB監(jiān)聽會(huì)根據(jù)您在控制臺(tái)上配置的轉(zhuǎn)發(fā)規(guī)則對(duì)請(qǐng)求進(jìn)行處理。以ALB控制臺(tái)上的標(biāo)準(zhǔn)配置為參照物,AScript可選擇在規(guī)則處理前或規(guī)則處理后生效。
規(guī)則模型
AScript的規(guī)則模型如下:
AScript的規(guī)則模型的核心出發(fā)點(diǎn)是將不同業(yè)務(wù)功能隔離至不同規(guī)則,以及控制規(guī)則的執(zhí)行流。
AScript的規(guī)則模型中的每條規(guī)則可以各自選擇規(guī)則的執(zhí)行位置。
AScript的規(guī)則模型是以監(jiān)聽維度來(lái)進(jìn)行設(shè)計(jì)的。
規(guī)則執(zhí)行位置
AScript規(guī)則的執(zhí)行位置包含請(qǐng)求方向規(guī)則執(zhí)行前、請(qǐng)求方向規(guī)則執(zhí)行后和響應(yīng)方向規(guī)則執(zhí)行前。
請(qǐng)求方向規(guī)則執(zhí)行前:常用文件自動(dòng)重命名、文件后綴小寫化、添加URI前綴和文件后綴名改寫等場(chǎng)景。
請(qǐng)求方向規(guī)則執(zhí)行后:常用文件自動(dòng)重命名、文件后綴小寫化、添加URI前綴和文件后綴名改寫等場(chǎng)景。
響應(yīng)方向規(guī)則執(zhí)行前:常用文件自動(dòng)重命名等場(chǎng)景。
規(guī)則執(zhí)行情況
規(guī)則執(zhí)行情況字段詳細(xì)說(shuō)明:
規(guī)則ID:標(biāo)識(shí)每條規(guī)則的執(zhí)行情況。
規(guī)則ID代表的執(zhí)行情況:
規(guī)則ID
執(zhí)行情況
-1
默認(rèn)值。
1
未執(zhí)行。
2
執(zhí)行命中。
當(dāng)規(guī)則含有
if condition {}
,且condition
為真。3
執(zhí)行未命中。
當(dāng)規(guī)則含有
if condition {}
,且condition
為假;或規(guī)則不包含if condition {}
。4
執(zhí)行異常。常見的異常情況如下所示:
400 :
not found inline func %s
401 :
not found argument %d in %s
402:
mismatch string type of arg %d in %s
403:
mismatch number type of arg %d in %s
404:
mismatch table type of arg %d in %s
405:
mismatch boolean type of arg %d in %s
406:
mismatch function type of arg %d in %s
407:
exceed the exec cputime limit %d-%d us
408:
exceed the api call limit %s %d-%d times
409:
exceed the max loops limit %d in m3u8_rewrite
410:
exceed the max loops limit %d in foreach
499:
unknown reason
執(zhí)行耗時(shí):
單位:微秒us。
默認(rèn)值:-1。
前端呈現(xiàn)的耗時(shí)區(qū)間分布:
第1檔:0~100us
第2檔:100~500us
第3檔:500~1000us
第4檔:1000~5000us
第5檔:5000~20000us
第6檔:20000~50000us
第7檔:>50000us
AScript規(guī)則的中斷執(zhí)行:
默認(rèn)值:-1。
相關(guān)文檔
AScript基本介紹您可參考可編程腳本AScript概述。
AScript具體操作配置您可參考添加和管理AScript可編程腳本規(guī)則。