配置AScript規則

更新時間:
Copy as MD

當標準轉寄規則無法滿足業務需求時,可通過AScript編寫自訂轉寄邏輯。本文介紹AScript的工作原理及規則配置方法。

AScript概述

AScriptALB提供的可程式化指令碼功能,內建變數、條件判斷和函數庫,用於編寫自訂轉寄邏輯。典型應用情境包括:

  • 自訂鑒權:基於請求參數、Cookie或自訂演算法實現防盜鏈,或配置User-Agent黑名單、Referer白名單等。

  • IP黑白名單管控:按用戶端IP進行存取控制。

  • 要求標頭和回應標頭修改:靈活修改請求參數、要求標頭等變數。

  • URL改寫和重新導向:改寫URI、檔案尾碼,或按條件302重新導向到不同地址。

關於AScript的文法和內建變數,請參見AScript文法與變數參考。更多情境程式碼範例,請參見AScript情境樣本

工作原理

AScript規則與標準轉寄規則一樣用於處理ALB請求。當用戶端請求到達ALB監聽後,ALB按照配置的轉寄規則進行處理,AScript可選擇在標準規則處理前或處理後生效。

AScript以監聽為維度設計,將不同商務邏輯隔離到獨立規則中。每條規則可選擇以下執行位置:

  • 請求方向規則執行前/後:常用於檔案自動重新命名、檔案尾碼小寫化、添加URI首碼和檔案尾碼名改寫等情境。

  • 回應程式向規則執行前:常用於檔案自動重新命名等情境。

前提條件

  • 建立標準版或WAF增強版的ALB執行個體。基礎版執行個體不支援AScript。

  • 已為ALB執行個體建立監聽

添加AScript規則

建議先在非生產監聽上驗證AScript規則,確認流量轉寄符合預期後,再在生產監聽上配置相同規則。

  1. 登入ALB控制台的執行個體頁面,單擊目標執行個體ID。

  2. 監聽頁簽單擊目標監聽ID,單擊轉寄規則頁簽,根據需求單擊請求方向轉寄規則回應程式向轉寄規則,然後單擊在規則執行前添加可程式化指令碼在規則執行後添加可程式化指令碼

    選擇回應程式向轉寄規則時,只允許在規則執行前添加可程式化指令碼
  3. 添加可程式化指令碼頁面配置以下參數,然後單擊確定

    • 規則名稱:輸入自訂規則名稱。

    • 規則代碼:輸入規則代碼,或單擊使用代碼模版選擇情境代碼模板。可參考AScript情境樣本

    • 執行位置:規則執行位置,不可更改。

    • 啟用狀態:規則啟用狀態。

    • 高級配置(選填):當請求攜帶_es_dbg參數、且值為此處配置的密鑰時,開啟調試回應標頭以輸出規則執行記錄。調試回應標頭中的欄位說明如下:

      • 規則ID:每條規則的唯一性標識,格式為as-****

      • 執行情況code及說明:

        執行情況code

        執行情況說明

        未執行。

        0

        執行命中。

        當規則含有if condition {},且condition為真。

        1

        執行未命中。

        當規則含有if condition {},且condition為假;或規則不包含if condition {}

        2

        執行異常。

      • 執行耗時:單位為微秒(us),預設值為-1

      • 中斷執行:預設值為-1

管理AScript規則

在轉寄規則頁簽,使用者可以對AScript規則執行以下操作:

  • 單擊規則ID旁的開關以啟用/禁用規則。

  • 單擊可程式化指令碼卡片右上方的編輯,可修改規則配置。

  • 單擊可程式化指令碼卡片右上方的刪除,然後在彈窗中單擊確定

計費說明

AScript規則會影響LCU計費中的規則評估數指標,詳見ALB計費規則