Skip to main content
Version: 2.3.3

Request Termination

用途說明#

此插件會終止所有請求並回傳特別的狀態碼和訊息。其允許暫停服務或路由的流量,甚至可以阻擋用戶。

欄位配置說明#

變數類型預設值說明必填
status_codeinteger503要送回的狀態碼。必須是100到599間的整數。
messagestring要送出的訊息,如果使用預設的回應產生器。
bodystring要送出的回應原始本體。此欄位與 message 為互斥欄位。
content_typestring原始本體的內容類型。

用法示例#

在全局啟用插件#

  1. 從網站左邊Menu中 外掛插件 頁面中,點選右上角的 新增外掛插件

全局啟用畫面

  1. 點選後,選擇 流量控管 頁籤,並啟用Request Termination,填寫內容參考欄位配置說明,設定成功後,任何請求(不分服務、路由、用戶)皆會被阻擋。

在服務端上啟用插件#

  1. 從網站左邊Menu中 服務 > 服務列表 頁面中,選擇要啟用此插件的服務,假設為google,點選對應的編輯按鈕:

服務啟用畫面1

  1. 在編輯畫面中,點選上方的 外掛插件 頁籤,再點選頁籤內容上方的 新增外掛插件 按鈕:

服務啟用畫面2

點選後,選擇 流量控管 頁籤,並啟用Request Termination,填寫內容參考欄位配置說明,設定成功後,僅有此服務(範例為google)請求會被阻擋。

在路由端上啟用插件#

可以由兩種方式來選擇路由,並啟用插件:

方式一:路由列表#

  1. 從網站左邊Menu中 服務 > 路由列表 頁面中,選擇要啟用此插件的路由,假設為google,點選對應的編輯按鈕:

路由啟用畫面1

方式二:服務 > 服務列表 > 路由列表#

  1. 從網站左邊Menu中 服務 > 服務列表 頁面中,選擇要啟用此插件的路由 所屬之服務(假設為google),點選對應的編輯按鈕。

在編輯畫面中,點選上方的 路由 頁籤,選擇要啟用此插件的路由(假設為google),點選對應的編輯按鈕:

路由啟用畫面2


  1. 承第1步,點擊上述兩種方式之一的編輯按鈕後,在編輯畫面中,點選上方的 外掛插件 頁籤,再點選頁籤內容上方的 新增外掛插件 按鈕:

路由啟用畫面3

點選新增外掛插件 按鈕後,選擇 流量控管 頁籤,並啟用Request Termination,填寫內容參考欄位配置說明,設定成功後,僅有此路由(範例為google)請求會被阻擋。

在用戶端上啟用插件#

  1. 從網站左邊Menu中 訂閱用戶 > 用戶列表 頁面中,選擇要啟用此插件的用戶,假設為portaladmin,點選對應的編輯按鈕 :

用戶啟用畫面1

  1. 在編輯畫面中,點選上方的 外掛插件 頁籤,再點選頁籤內容上方的 新增外掛插件 按鈕:

用戶啟用畫面2

點選後,選擇 流量控管 頁籤,並啟用Request Termination,填寫內容參考欄位配置說明,設定成功後,僅有此用戶(範例為portaladmin)請求會被阻擋。

驗證#

於某個路由新增插件,並填入設定值。此範例在 status_codemessage 相繼填入 503 以及 The service is under maintenance now.

request-termination

新增後,由剛新增插件的路由送出請求會得到以下回應

HTTP/1.1 503 Service Temporarily Unavailable
Date: Tue, 06 Apr 2021 08:45:50 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Content-Length: 51
X-Kong-Response-Latency: 134
Server: kong/2.3.3
{"message":"The service is under maintenance now."}