本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將速率限制新增至閘道
透過速率限制,您可以控制個別呼叫者、目標或工具在閘道上可以使用的流量。您可以定義維度索引鍵,以決定流量的分組方式,然後設定速率項目來指定每個群組允許的輸送量。
使用速率限制來完成下列目標:
-
保護後端模型和工具免於流量遽增
-
根據 JWT 宣告或 IAM 身分強制執行每個來電者配額
-
將速率設定為零以封鎖特定來電者
-
適用於推論目標的每分鐘控制字符 (TPM)
-
限制與端點的並行連線
速率限制的運作方式
每個速率限制會定義一或多個維度索引鍵,以決定閘道將流量分組到儲存貯體的方式。在速率限制內,您可以建立符合特定維度值的項目,並指定該儲存貯體的允許速率。
當閘道收到請求時,它會評估所有作用中的速率限制。對於每個速率限制,閘道會從請求內容解析維度索引鍵。它會尋找相符的項目,並檢查請求是否超過允許的速率。請求必須通過所有速率限制才能繼續 (AND 邏輯)。
速率限制變更會在 30 秒內傳播到資料平面。
與服務受管限制的關係
閘道會強制執行客戶定義的費率限制和服務受管限制。客戶定義的費率限制不能超過服務上限。任何請求的有效費率都是客戶定義限制和服務受管限制的最低費率。如需目前的服務受管限制,請參閱閘道服務配額。
速率限制元件
| 元件 | 說明 |
|---|---|
|
|
速率限制的唯一識別符 (2–64 個字元,含 |
|
|
1 到 10 個索引鍵的排序清單,用於決定將流量分組到儲存貯體的方式。維度鍵在建立後是不可變的。 |
|
|
1 到 1,000 個費率項目的清單。每個項目都會指定維度值和該儲存貯體允許的速率。 |
|
|
速率限制用途的選用文字描述。 |
狀態生命週期
| 狀態 | 說明 |
|---|---|
|
|
正在佈建速率限制。它尚未強制執行。 |
|
|
速率限制在資料平面上處於作用中狀態並強制執行。 |
|
|
正在更新速率限制。先前的組態會保持強制執行狀態,直到更新完成為止。 |
|
|
正在移除速率限制。刪除完成時,強制執行會停止。 |
限制
| 資源 | 限制 |
|---|---|
|
每個閘道的速率限制 |
50 |
|
每個速率限制的項目數 |
1,000 |
|
每個速率限制的維度鍵 |
10 |
|
描述長度上限 |
512 個字元 |
|
項目維度值 |
必須符合維度索引鍵的數量 |
|
速率值範圍 |
0 到 10,000,000 (0 封鎖所有相符的流量) |
|
傳播時間 |
≤ 30 秒 |
重要
根據預設,速率限制會使用故障開啟行為。如果速率限制服務無法使用或無法解析維度,閘道會允許請求繼續。相應地設計您的安全狀態,不要僅依賴速率限制作為安全界限。
常見的 API 錯誤
透過控制平面 API 管理速率限制時,可能會傳回下列錯誤:
| HTTP 狀態 | 錯誤 | 說明 |
|---|---|---|
|
400 |
|
無效的請求參數 (例如,不支援的指標/期間組合、無效的維度值)。 |
|
404 |
|
指定的閘道或速率限制不存在。 |
|
409 |
|
具有相同維度索引鍵的速率限制已存在,或閘道處於不允許修改的狀態。 |