ExtensionChain

單一擴充功能鏈結包裝函式,其中包含要執行的相符條件和擴充功能。

JSON 表示法
{
  "name": string,
  "matchCondition": {
    object (MatchCondition)
  },
  "extensions": [
    {
      object (Extension)
    }
  ]
}
欄位
name

string

這是必要旗標,這個擴充功能鏈結的名稱。名稱會記錄為 HTTP 要求記錄的一部分。名稱必須符合 RFC-1034 規範,且只能使用小寫英文字母、數字和連字號,長度上限為 63 個半形字元。此外,第一個字元必須是英文字母,最後一個字元則是英文字母或數字。

matchCondition

object (MatchCondition)

這是必要旗標,系統為要求叫用此鏈結的條件。

extensions[]

object (Extension)

這是必要旗標,一組要針對相符要求執行的擴充功能。至少須提供一個擴充功能。LbTrafficExtension 資源的每個擴充資料鏈結最多可定義 3 個擴充資料。LbRouteExtension 鏈結最多只能包含 1 個擴充功能。

MatchCondition

系統為要求叫用此鏈結的條件。

JSON 表示法
{
  "celExpression": string
}
欄位
celExpression

string

這是必要旗標,一般運算語言 (CEL) 運算式,用於比對要執行擴充功能鏈結的請求。

詳情請參閱 CEL 比對器語言參考資料

擴充功能

要針對相符要求執行的鏈結中單一擴充功能。

JSON 表示法
{
  "name": string,
  "authority": string,
  "service": string,
  "supportedEvents": [
    enum (EventType)
  ],
  "timeout": string,
  "failOpen": boolean,
  "forwardHeaders": [
    string
  ]
}
欄位
name

string

這是必要旗標,這個擴充功能的名稱。名稱會記錄為 HTTP 要求記錄的一部分。名稱必須符合 RFC-1034 規範,且只能使用小寫英文字母、數字和連字號,長度上限為 63 個半形字元。此外,第一個字元必須是英文字母,最後一個字元則是英文字母或數字。

authority

string

(非必要) 從 Envoy 傳送至擴充功能服務的 gRPC 要求中的 :authority 標頭。摘要額外資訊必填。

service

string

這是必要旗標,執行擴充功能的服務參照。

目前僅支援說明文字廣告附加元件。

如要設定說明文字分頁附加元件,service 必須是後端服務的完整參照,格式為 https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService}https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}

supportedEvents[]

enum (EventType)

(非必要) 在要求或回應處理期間,系統會呼叫這項擴充功能的事件組合。這是 LbTrafficExtension 資源的必填欄位。不得為 LbRouteExtension 資源設定。

timeout

string (Duration format)

(非必要) 指定串流中每則個別訊息的逾時期限。逾時時間必須介於 10 至 1,000 毫秒之間。摘要額外資訊必填。

以秒為單位的時間長度,最多可有 9 個小數位數,結尾為「s」,例如:"3.5s"

failOpen

boolean

(非必要) 決定在擴充功能呼叫失敗或逾時時,Proxy 的行為。

設為 TRUE 時,要求或回應處理作業會繼續進行,不會發生錯誤。擴充功能鏈結中的後續擴充功能也會一併執行。將其設為 FALSE 或使用 FALSE 的預設設定時,會發生下列其中一種情況:

  • 如果回應標頭尚未傳送至下游用戶端,系統會傳回一般 500 錯誤給用戶端。您可以在負載平衡器中設定自訂錯誤回應,以便調整錯誤回應。

  • 如果已傳送回應標頭,則會重設傳送至下游用戶端的 HTTP 串流。

forwardHeaders[]

string

(非必要) 要轉送至擴充功能的 HTTP 標頭清單 (來自用戶端或後端)。如果省略,系統會傳送所有標頭。每個元素都是表示標頭名稱的字串。

EventType

要求或回應中要呼叫擴充功能的部分。

列舉
EVENT_TYPE_UNSPECIFIED 未指定的值。請勿使用。
REQUEST_HEADERS 如果在 supportedEvents 中加入,系統會在收到 HTTP 要求標頭時呼叫擴充功能。
REQUEST_BODY 如果在 supportedEvents 中加入,系統會在 HTTP 要求主體傳送時呼叫擴充功能。
RESPONSE_HEADERS 如果在 supportedEvents 中加入這個參數,系統會在收到 HTTP 回應標頭時呼叫擴充功能。
RESPONSE_BODY 如果在 supportedEvents 中加入這個參數,系統會在收到 HTTP 回應主體時呼叫擴充功能。
REQUEST_TRAILERS 如果包含在 supportedEvents 中,則會在 HTTP 要求拖車到達時呼叫擴充功能。
RESPONSE_TRAILERS 如果在 supportedEvents 中加入這個參數,系統會在 HTTP 回應預告片傳送時呼叫擴充功能。