全部產品
Search
文件中心

Server Load Balancer:AScript原理介紹

更新時間:Jun 19, 2024

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

    • 402mismatch string type of arg %d in %s

    • 403mismatch number type of arg %d in %s

    • 404mismatch table type of arg %d in %s

    • 405mismatch boolean type of arg %d in %s

    • 406mismatch function type of arg %d in %s

    • 407exceed the exec cputime limit %d-%d us

    • 408exceed the api call limit %s %d-%d times

    • 409exceed the max loops limit %d in m3u8_rewrite

    • 410exceed the max loops limit %d in foreach

    • 499unknown 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

相關文檔