您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
課程內容
透過本教學課程,您可以瞭解下列主題:
- 新增會影響要求和回應的政策。
- 查看政策的影響。
軟硬體需求
- Proxy 中有至少一個政策 (也是「開始使用」教學課程的一部分)。
- 機器安裝
curl
,以便透過指令列發出 API 呼叫。
新增尖峰流量防範政策
在這個教學課程中,您將新增並設定 SpikeArrest 政策,以免目標服務突然暴增,而流量高峰可能是用量增加、發生錯誤的用戶端或惡意攻擊。如果要求數量超過頻率限制,API 就會針對要求傳回 HTTP 500 錯誤。
為 API Proxy 新增尖峰流量防範政策:
- 登入 apigee.com/edge。
- 在左側導覽列中,依序選取「Develop」(開發) >「API Proxy」。
- 選取要新增尖峰流量防範政策的 API Proxy。
如果您已按照「開始使用」教學課程操作,可以將該 Proxy 新增至您在建立 API Proxy 中建立的「getstarted」Proxy。
- 在新 API Proxy 的編輯器中,按一下「Develop」分頁標籤:
API Proxy 編輯器可讓您查看 API Proxy 的結構,並設定其流程。編輯器會以視覺化方式呈現 Proxy 的要求和回應訊息流程,並顯示定義 Proxy 的基礎 XML 編輯畫面。
- 在左側的導覽器窗格中,依序點選「Proxy Endpoints」>「default」PreFlow底下的「PreFlow」PreFlow。(其他教學課程將會說明「流程」的概念)。
- 按一下與 Request PreFlow 對應的頂端「+Step」按鈕。畫面上會列出您可以建立的所有政策的分類清單。
- 在流量管理類別中選取「高強度單車」。系統隨即會顯示「新政策」對話方塊:
- 保留預設名稱,然後按一下「新增」。新政策會附加至要求的 PreFlow 流程。
- 在導覽器中,確認「Proxy Endpoints > default」PreFlow底下的「PreFlow」PreFlow仍已選取,並在 API Proxy 編輯器中記下下列內容:
- 新的 Spike Arrest-1 政策會在 API Proxy 編輯器左側「Navigator」的「政策」下方新增。
- Spike Arrest-1 圖示已新增至 API Proxy 編輯器正上方的「Designer view」中,以視覺化方式呈現 Proxy 的訊息流程。
- 政策的 XML 會顯示在 API Proxy 編輯器底部中央的「程式碼檢視」中。
- 在「Navigator」中,選取「Policy」下方的「Spike Arrest-1」,並在 API Proxy 編輯器中記下下列內容:
- 政策詳細資料會顯示在 API Proxy 編輯器正上方的「設計人員檢視」中。
- 政策的 XML 會顯示在 API Proxy 編輯器底部中央的「程式碼檢視」中。
- 政策的 XML 元素和屬性值會顯示在 API Proxy 編輯器右側的屬性檢查器中。
-
在政策的 XML 中,將
<Rate>
元素的值變更為「下午 1 點」 (在雲端中大約每 60 秒會轉譯為大約 2 個要求)。你可以將速率指定為每分鐘 (
pm
) 或每秒 (ps
) 的整數值。這項限制極低,僅供本教學課程使用,用於展示政策。通常提高上限會比較高。請注意,屬性檢查器中的
Rate
值也會變更為「1pm」。或者,您也可以在屬性檢查器中變更「Rate」值,然後反映在 XML 檢視畫面中。 - 按一下「儲存」,將目前的修訂版本儲存到您的變更。
-
使用
curl
呼叫 API,將 org_name 換成您的 Apigee 機構名稱:curl "http://org_name-test.apigee.net/getstarted"
例如:
curl "http://ahamilton-eval-test.apigee.net/getstarted" | python -m json.tool
確認要求成功,且您看到和之前相同的 XML 回應。(您也可以在網路瀏覽器中只輸入網址)。
- 在一分鐘內執行
curl
指令 (或重新整理瀏覽器視窗) 兩次或三次,您會發現您超出政策的頻率限制,因此系統會顯示以下訊息:{ "fault": { "faultstring":"Spike arrest violation. Allowed rate : 1pm", "detail": { "errorcode":"policies.ratelimit.SpikeArrestViolation"} } }
如果您在一分鐘內嘗試進行更多呼叫,應該會繼續收到錯誤訊息。
- 編輯政策,將 <
Rate>
上限設為 15pm (會轉譯為每 4 秒限制為每 4 秒進行一次的呼叫),然後儲存 API Proxy。 - 執行
curl
指令或重複重新整理瀏覽器 (速度較快curl
)。 請注意,如果您在 4 秒內進行一到兩次呼叫,呼叫成功。如果能在 4 秒內快速發出呼叫,應該就能收到錯誤。但是每隔 4 秒過後,您可以繼續撥打電話,而不是被阻斷一分鐘 (在下午 1 點設定)。