AScript有強大的轉寄規則自訂能力,當ALB控制台上的標準配置無法滿足您的業務需求時,可通過簡單的可程式化指令碼AScript來實現功能的二次開發。本文協助您瞭解AScript的運行原理、規則模型和規則生效位置。
運行原理
您配置的AScript規則與ALB控制台上的標準配置一樣,都是對ALB請求進行處理。
當用戶端請求到達ALB監聽後,ALB監聽會根據您在控制台上配置的轉寄規則對請求進行處理。以ALB控制台上的標準配置為參照物,AScript可選擇在規則處理前或規則處理後生效。
規則模型
AScript的規則模型如下:
AScript的規則模型的核心出發點是將不同業務功能隔離至不同規則,以及控制規則的執行流。
AScript的規則模型中的每條規則可以各自選擇規則的執行位置。
AScript的規則模型是以監聽維度來進行設計的。
規則執行位置
AScript規則的執行位置包含請求方向規則執行前、請求方向規則執行後和回應程式向規則執行前。
請求方向規則執行前:熱門檔案自動重新命名、檔案尾碼小寫化、添加URI首碼和檔案尾碼名改寫等情境。
請求方向規則執行後:熱門檔案自動重新命名、檔案尾碼小寫化、添加URI首碼和檔案尾碼名改寫等情境。
回應程式向規則執行前:熱門檔案自動重新命名等情境。
規則執行情況
規則執行情況欄位詳細說明:
規則ID:標識每條規則的執行情況。
規則ID代表的執行情況:
規則ID
執行情況
-1
預設值。
1
未執行。
2
執行命中。
當規則含有
if condition {}
,且condition
為真。3
執行未命中。
當規則含有
if condition {}
,且condition
為假;或規則不包含if condition {}
。4
執行異常。常見的異常情況如下所示:
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
執行耗時:
單位:微秒us。
預設值:-1。
前端呈現的耗時區間分布:
第1檔:0~100us
第2檔:100~500us
第3檔:500~1000us
第4檔:1000~5000us
第5檔:5000~20000us
第6檔:20000~50000us
第7檔:>50000us
AScript規則的中斷執行:
預設值:-1。
相關文檔
AScript基本介紹您可參考可程式化指令碼AScript概述。
AScript具體操作配置您可參考在ALB控制台配置AScript。