查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
課程內容
透過本教學課程,你將會瞭解:
- 新增會影響要求和回應的政策。
- 查看政策效果。
軟硬體需求
- 在您的 Proxy 中至少一項政策 (也是「開始使用」教學課程的一部分)。
- 已在裝置上安裝
curl
,透過指令列發出 API 呼叫。
新增尖峰流量防範政策
在這個教學課程中,您將新增並設定 SpikeArrest 政策來保護目標 服務以因應流量突然攀升的情況 或惡意攻擊如果要求數量超過頻率限制,API 會傳回 要求的 HTTP 500 錯誤。
將 Spike Arrest 政策新增至 API Proxy:
- 登入 apigee.com/edge。
- 依序選取「開發」>「開發」API Proxy。
- 選取要新增尖峰流量政策的 API Proxy。
完成「開始使用」教學課程後,可以將其新增到 「開始」請參閱「建立 API Proxy。
- 在新 API Proxy 的編輯器中,按一下「Develop」(開發) 分頁標籤:
「API Proxy 編輯器」可讓您查看 API Proxy 的結構並設定其流程。 編輯器會以視覺化方式呈現 Proxy 的要求和回應訊息 流程以及定義 Proxy 的基礎 XML 的可編輯畫面。
- 在左側的「Navigator」窗格中,按一下 Proxy 下的 PreFlow 端點 >default。(其他教學課程會介紹 流程)。
- 按一下與 Request PreFlow 相對應的頂端「+步驟」按鈕。這個 會顯示可建立政策的分類清單。
- 在「流量管理」類別中選取「Spike Arrest」。新政策 對話方塊出現:
- 保留預設名稱,然後按一下「新增」。新政策會附加至 要求的 PreFlow 流程
- 在 Navigator 中,確定 PreFlowProxy 端點位於 Proxy 端點
>仍為選取狀態,且在 API Proxy 編輯器中請注意下列事項:
- 新的 Spike Arrest-1 政策位於 API Proxy 編輯器左側的導覽器。
- 「Spike Arrest-1」圖示已新增到 Designer view, 位於 API Proxy 編輯器上方中央的示意圖 以及 Proxy 的訊息流程
- 政策的 XML 會顯示在 Code view 位於 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,改用您的 Apigee 機構名稱 針對 org_name: 敬上curl "http://org_name-test.apigee.net/getstarted"
例如:
curl "http://ahamilton-eval-test.apigee.net/getstarted" | python -m json.tool
確認要求成功,且您會看到與先前相同的 XML 回應。 (您也可以直接在網路瀏覽器中輸入網址)。
- 再執行二到三個以上的
curl
指令 (或重新整理瀏覽器視窗) 並在 1 分鐘內收到以下訊息,因為您超過 政策的頻率限制:{ "fault": { "faultstring":"Spike arrest violation. Allowed rate : 1pm", "detail": { "errorcode":"policies.ratelimit.SpikeArrestViolation"} } }
如果您嘗試在一分鐘內撥打更多電話,仍會造成錯誤 撰寫新的電子郵件訊息
- 編輯政策,將「<
Rate>
」的限制設為 晚上 15 點 (在 然後儲存 API Proxy - 執行
curl
指令或重複重新整理瀏覽器 (速度較快curl
)。 請注意,如果您在 4 秒內發出一或兩次呼叫,則呼叫成功。如果發生以下情況: 快速呼叫超過兩秒內,應該就會造成錯誤。但之後 您可以繼續撥打電話,不會被封鎖 。