Hyperscan 比對器 (proto)

此擴充功能的完整名稱為 envoy.matching.input_matchers.hyperscan

注意

此擴充功能僅在 contrib 映像檔中提供。

注意

此擴充功能運作正常,但尚未有大量的生產使用時間,請僅在有此前提下使用。

此擴充功能尚未強化,僅應在下游和上游皆受信任的部署中使用。

提示

此擴充功能會擴展並可與下列擴充功能類別一起使用

Hyperscan 設定概觀

extensions.matching.input_matchers.hyperscan.v3alpha.Hyperscan

[extensions.matching.input_matchers.hyperscan.v3alpha.Hyperscan proto]

Hyperscan 正則表達式比對器。此比對器使用 Hyperscan 引擎,該引擎利用 x86 SIMD 指令來加速在資料流中同時比對大量正則表達式。

{
  "regexes": []
}
regexes

(重複 extensions.matching.input_matchers.hyperscan.v3alpha.Hyperscan.Regex必要) 指定輸入應比對的一組正則表達式。

extensions.matching.input_matchers.hyperscan.v3alpha.Hyperscan.Regex

[extensions.matching.input_matchers.hyperscan.v3alpha.Hyperscan.Regex proto]

{
  "regex": ...,
  "id": ...,
  "caseless": ...,
  "dot_all": ...,
  "multiline": ...,
  "allow_empty": ...,
  "utf8": ...,
  "ucp": ...,
  "combination": ...,
  "quiet": ...
}
regex

(字串必要) 正則表達式。

此表達式必須僅表示要比對的模式,沒有分隔符號或旗標。

id

(uint32) 正則表達式的 ID。

此選項旨在用於邏輯組合中的子表達式。

caseless

(布林值) 比對會以不區分大小寫的方式執行。

表達式仍然可以使用 PCRE 符號 (尤其是 (?i)(?-i)) 來開啟和關閉不區分大小寫的比對。

dot_all

(布林值) 比對 . 將不會排除換行符號。

multiline

(布林值) ^$ 錨點會比對資料中的任何換行符號。

allow_empty

(布林值) 允許可與空字串比對的表達式。

此選項指示編譯器允許可與空緩衝區比對的表達式,例如 .?.*(a|)。由於 Hyperscan 可以傳回表達式的每個可能比對,因此這類表達式通常執行速度非常慢。

utf8

(布林值) 將模式視為 UTF-8 字元序列。

ucp

(布林值) 對於字元類別使用 Unicode 屬性。

此選項指示 Hyperscan 對於字元助憶符號 (例如 \w\s) 以及 POSIX 字元類別,使用 Unicode 屬性而不是預設的 ASCII 解譯。僅在與 utf8 搭配使用時才有意義。

combination

(布林值) 邏輯組合。

此選項指示 Hyperscan 將此表達式剖析為邏輯組合語法。邏輯限制包含運算元、運算子和括號。運算元是表達式索引,而運算子可以是 !&|

quiet

(布林值) 不要執行任何比對報告。

此選項指示 Hyperscan 忽略此表達式的比對報告。它旨在用於邏輯組合中的子表達式。