您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
課程內容
在本教學課程中,您將學習如何:
- 新增會影響要求和回應的政策。
- 查看政策的影響。
軟硬體需求
- Proxy 中至少有一項政策 (也是「開始使用」教學課程的一部分)。
curl安裝在電腦上,可從指令列發出 API 呼叫。
新增尖峰流量防範政策
在本教學課程中,您將新增及設定 SpikeArrest 政策,防範因用量增加、用戶端錯誤或惡意攻擊而導致的流量突然暴增,保護目標服務。如果要求數量超過速率限制,API 會針對要求傳回 HTTP 500 錯誤。
將尖峰流量防範政策新增至 API Proxy:
- 登入 apigee.com/edge。
- 在左側導覽列中,依序選取「開發」>「API Proxy」。
- 選取要新增尖峰流量防範政策的 API Proxy。
如果您已完成「入門」教學課程,可以將這個政策新增至您在「建立 API Proxy」中建立的「getstarted」Proxy。
- 在新的 API Proxy 編輯器中,點按「Develop」分頁標籤:

您可以在 API Proxy 編輯器中查看 API Proxy 的結構,並設定其流程。 編輯器會以視覺化方式呈現 Proxy 的要求和回應訊息流程,並顯示可編輯的基礎 XML,定義 Proxy。
- 在左側的「Navigator」窗格中,依序點選「Proxy Endpoints」>「default」下方的「PreFlow」。(其他教學課程會介紹「流程」的概念)。
- 點選頂端的「+Step」按鈕,對應至「Request PreFlow」。畫面會顯示所有可建立的政策,並依類別列出。

- 在「流量管理」類別中選取「Spike Arrest」。系統會顯示「New Policy」(新政策) 對話方塊:

- 保留預設名稱,然後按一下「新增」。新政策會附加至要求的 PreFlow 流程。
- 在「Navigator」中,確認「Proxy Endpoints」>「default」下的「PreFlow」仍處於選取狀態,並注意 API Proxy 編輯器中的下列事項:
- 新的 Spike Arrest-1 政策會新增至 API Proxy 編輯器左側的「Navigator」中的「Policies」下方。
- API Proxy 編輯器的頂端中央會顯示「Spike Arrest-1」圖示,設計檢視畫面會顯示這個圖示,代表 Proxy 的訊息流程。
- 政策的 XML 會顯示在 API Proxy 編輯器底部的「程式碼檢視」中。

- 在「Navigator」中,選取「Policies」下方的「Spike Arrest-1」,並在 API Proxy 編輯器中記下下列項目:
- API Proxy 編輯器的頂端中央會顯示設計師檢視畫面,其中包含政策詳細資料。
- 政策的 XML 會顯示在 API Proxy 編輯器底部的「程式碼檢視」中。
- 政策的 XML 元素和屬性值會顯示在 API Proxy 編輯器右側的「Property Inspector」中。

-
在政策的 XML 中,將
<Rate>元素的值變更為 1pm (這會轉換為雲端中每 60 秒允許約 2 個要求)。你可以指定每分鐘 (
pm) 或每秒 (ps) 的費率,以整數值表示。這是非常低的限制,僅用於本教學課程,以說明政策。通常會將上限設得高出許多。請注意,屬性檢查器中的
Rate值也會變更為「1pm」。 或者,您也可以在「Property Inspector」中變更「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 秒約允許 2 次呼叫),然後儲存 API Proxy。 - 執行
curl指令或重複重新整理瀏覽器 (curl速度較快)。 請注意,如果您在 4 秒間隔內發出 1 或 2 個呼叫,呼叫就會成功。如果快速撥打電話 (4 秒內超過兩通),應該會發生故障。但每隔 4 秒後,你就能繼續撥打電話,而不是像 1 點設定一樣,整整一分鐘都無法撥打。