Edgio Premium 規則引擎參考的 Azure 內容交付網路
本文列出 Azure 內容傳遞網路可用比對條件和功能的詳細描述,規則引擎。
規則引擎的設計目的是要成為內容傳遞網路處理特定要求類型的最終授權單位。
常見用途:
- 覆寫或定義自定義快取原則。
- 確保或拒絕敏感性內容的請求。
- 重定向要求。
- 儲存自訂記錄數據。
重要概念
本文說明設定規則引擎的重要概念。
草案
原則草稿包含一或多個規則,這些規則旨在識別要求,以及套用至這些規則的一組動作。 草稿是一項正在進行中的工作,可以頻繁更新配置,而不會影響站点流量。 一旦草稿準備好完成,就應該轉換成只讀原則。
規則
規則會識別一或多個類型的要求,以及套用至這些要求的一組動作。
它由以下組成:
- 一組條件表達式,定義用來識別要求的邏輯。
- 一組比對條件,定義用來識別要求的準則。
- 一組功能,定義內容傳遞網路如何處理上述要求。 下圖會識別這些元素。
政策
原則是由一組只讀規則所組成,可提供下列方法:
- 建立、儲存及管理規則的多個變體。
- 回復至先前部署的版本。
- 事先準備特定事件的規則(例如,因客戶來源維護而重新導向流量的規則)。
注意
雖然每個環境只允許單一原則,但可能會視需要部署原則。
部署要求
部署要求提供簡單且簡化的程式,可透過此程式將原則快速套用至預備或生產環境。 提供部署要求的歷程記錄,以協助追蹤套用至這些環境的變更。
注意
只有未通過自動化驗證和錯誤偵測系統的要求,才需要手動檢閱和核准。
規則優先順序
原則中包含的規則通常會依照列出的順序進行處理(例如,由上而下)。 如果要求符合衝突的規則,則會優先處理最後一個規則。
政策部署工作流程
原則可套用至生產環境或預備環境的工作流程,如下所示。
步驟 | 描述 |
---|---|
建立草稿 | 草稿包含一組規則,這些規則定義了內容傳遞網路如何處理您的內容請求。 |
鎖定草稿 | 完成草稿之後,應該將其鎖定並轉換成只讀原則。 |
提交部署要求 | 部署要求可讓原則套用至測試或生產流量。 請發送部署請求至預備環境或生產環境。 |
檢閱部署請求 | 部署要求會進行自動化驗證和錯誤偵測。 雖然大部分的部署要求都會自動核准,但更複雜的原則需要手動檢閱。 |
政策部署 (階段) | 在核准部署要求至預備環境時,原則會套用至預備環境。 此環境可讓原則針對模擬網站流量進行測試。 一旦政策準備好應用於線上網站流量,應提交新的生產環境部署申請。 |
政策部署 (生產) | 當核准將部署要求至生產環境時,將會對生產環境套用一項政策。 此環境可讓原則作為決定內容傳遞網路應如何處理即時流量的最終授權單位。 |
語法
處理特殊字元的方式會根據比對條件或功能處理文字值的方式而有所不同。 比對條件或功能可能會以下列其中一種方式解譯文字:
字面值
解譯為常值的文字會將除了 % 符號以外的所有特殊字元視為必須比對之值的一部分。 換句話說,只有在找到該確切值(也就是 \'*'\
)時,才會滿足設定為 \'*'\
的常值比對條件。
百分比符號用來指出 URL 編碼方式(例如,%20
)。
通配符值
解譯為通配符值的文字會將額外的意義指派給特殊字元。 下表描述如何解譯下列字元集:
字元 | 描述 |
---|---|
\ | 反斜杠可用來逸出此數據表中指定的任何字元。 反斜杠必須在應逸出的特殊字元之前直接指定。 例如,下列語法會逸出星號: \* |
% | 百分比符號用來指出 URL 編碼方式(例如,%20 )。 |
* | 星號是代表一或多個字符的通配符。 |
空間 | 空格字元表示指定的值或模式符合比對條件。 |
價值 | 單引號沒有特殊意義。 不過,會使用單引號來表示某個值應被視為文字常值。 它可以用於以下方式: - 每當指定的值符合比較值的任何部分時,即可滿足比對條件。 例如, 'ma' 會符合下列任何字串:/business/馬rathon/asset.htm 馬p.gif /business/template。p - 它允許將特殊字元指定為字面字元。 例如,您可以藉由將空格字元括在一組單引號內來指定常值空格字元(也就是 ' ' 或 'sample value' )。- 允許指定空白值。 藉由指定一組單引號來指定空白值(也就是 '')。 重要事項: - 如果指定的值不包含通配符,則會自動將它視為常值,這表示不需要指定一組單引號。 - 如果反斜杠未逸出此數據表中的另一個字元,則會在單引號集合內指定時予以忽略。 - 將特殊字元指定為常值字元的另一種方式是使用反斜杠逸出它(也就是 \ )。 |
正則表達式
正則表達式會定義在文字值內搜尋的模式。 正則表達式表示法會定義各種符號的特定意義。 下表指出特殊字元如何透過支援正則表達式的條件和功能來處理。
特殊字元 | 描述 |
---|---|
\ | 反斜杠會逸出後面的字元,這會導致該字元被視為常值,而不是採用其正則表達式意義。 例如,下列語法會逸出星號:\* |
% | 百分比符號的意義取決於其使用方式。%{HTTPVariable} :此語法會識別 HTTP 變數。%{HTTPVariable%Pattern} :此語法會使用百分比符號來識別 HTTP 變數,並做為分隔符。\% :逸出百分比符號可讓它當做常值或表示 URL 編碼(例如,\%20 )。 |
* | 星號可讓前面的字元比對零次或多次。 |
空間 | 空格字符通常被視為字面字元。 |
價值 | 單引號會被視為常值字元。 一組單引號沒有特殊意義。 |
支援正則表達式的比對條件和功能接受由 Perl 相容正則表達式(PCRE)定義的模式。